今天DotNetNuke建立的网站的永日模块有部份功能不能运行,提示“Runat 属性必须具有值 Server"

引起这个错误的原因是因为8月份最新的一个Windows系统升级程序,解决的办法如下:

把 /controls/TextEditor.ascx 第9行 id = ”celTextEditor” Runat=”Server” 修改为 id = "celTextEditor" Runat="Server"

请注意,这两行看起来是一样的,其实原始代码中,"celTextEditor"和"Server"这两个单词前面都有一个空格,也正是这个空格引起报错。在中文系统中,TextEditro.ascx文件打开可能是这样的


这应该是因为编码问题引起的,不要管它,直接修改为正确的英文。

下面是出错信息的全文:

InnerException: The Runat attribute must have the value Server.
FileName:
FileLineNumber: 0
FileColumnNumber: 0
Method: System.Web.UI.TemplateParser.ProcessError
StackTrace:
Message:DotNetNuke.Services.Exceptions.ModuleLoadException: The Runat attributemust have the value Server. ---> System.Exception: The Runatattribute must have the value Server. --->System.Web.HttpParseException: The Runat attribute must have the valueServer. ---> System.Exception: The Runat attribute must have thevalue Server. ---> System.Web.HttpException: The Runat attributemust have the value Server. atSystem.Web.UI.TemplateParser.ProcessError(String message) atSystem.Web.UI.TemplateParser.ProcessAttributes(Match match,ParsedAttributeCollection& attribs, Boolean fDirective, String&duplicateAttribute) atSystem.Web.UI.TemplateParser.ProcessBeginTag(Match match, StringinputText) at System.Web.UI.TemplateParser.ParseStringInternal(Stringtext, Encoding fileEncoding) --- End of inner exception stack trace ---at System.Web.UI.TemplateParser.ProcessException(Exception ex) atSystem.Web.UI.TemplateParser.ParseStringInternal(String text, EncodingfileEncoding) at System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath, Encoding fileEncoding) --- End of innerexception stack trace --- atSystem.Web.UI.TemplateParser.ParseString(String text, VirtualPathvirtualPath, Encoding fileEncoding) atSystem.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPathvirtualPath) at System.Web.UI.TemplateParser.ParseInternal() atSystem.Web.UI.TemplateParser.Parse() atSystem.Web.Compilation. TemplateBuildProvider.get_CodeCompilerType()atSystem.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProviderbuildProvider) atSystem.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() atSystem.Web.Compilation.BuildManager.CompileWebFile(VirtualPathvirtualPath) atSystem.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPathvirtualPath, Boolean noBuild, Boolean allowCrossApp, BooleanallowBuildInPrecompile) atSystem.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContextcontext, VirtualPath virtualPath, Boolean noBuild, BooleanallowCrossApp, Boolean allowBuildInPrecompile) atSystem.Web.UI. TemplateParser.GetReferencedType(VirtualPathvirtualPath, Boolean allowNoCompile) atSystem.Web.UI. TemplateParser.GetUserControlType(VirtualPathvirtualPath) atSystem.Web.UI.MainTagNameToTypeMapper.ProcessUserControlRegistration(UserControlRegisterEntryucRegisterEntry) atSystem.Web.UI. TemplateParser.ProcessDirective(String directiveName,IDictionary directive) atSystem.Web.UI.TemplateControlParser.ProcessDirective(StringdirectiveName, IDictionary directive) atSystem.Web.UI.TemplateParser.ParseStringInternal(String text, EncodingfileEncoding) --- End of inner exception stack trace --- atSystem.Web.UI.TemplateParser.ProcessException(Exception ex) atSystem.Web.UI.TemplateParser.ParseStringInternal(String text, EncodingfileEncoding) at System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath, Encoding fileEncoding) atSystem.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPathvirtualPath) at System.Web.UI.TemplateParser.ParseInternal() atSystem.Web.UI.TemplateParser.Parse() atSystem.Web.Compilation. TemplateBuildProvider.get_CodeCompilerType()atSystem.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProviderbuildProvider) atSystem.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()at System.Web.Compilation.BuildProvidersCompiler.PerformBuild() atSystem.Web.Compilation.BuildManager.CompileWebFile(VirtualPathvirtualPath) atSystem.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPathvirtualPath, Boolean noBuild, Boolean allowCrossApp, BooleanallowBuildInPrecompile) atSystem.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContextcontext, VirtualPath virtualPath, Boolean noBuild, BooleanallowCrossApp, Boolean allowBuildInPrecompile) atSystem.Web.UI.TemplateControl.LoadControl(VirtualPath virtualPath) atSystem.Web.UI.TemplateControl.LoadControl(String virtualPath) atDotNetNuke.UI.Skins.Skin.InjectModule(Control objPane, ModuleInfoobjModule, PortalSettings PortalSettings) --- End of inner exceptionstack trace ---

收藏 打印