簡體   English   中英

如何閱讀asp.net錯誤消息

[英]How to read asp.net error messages

我想弄清困擾我一段時間的東西。 一個人怎么會這樣讀取ASP.net錯誤消息:

錯誤:當前不可用。 DotNetNuke.Services.Exceptions.ModuleLoadException:服務器標記格式不正確。 ---> System.Web.HttpParseException:服務器標記格式不正確。 ---> System.Web.HttpException:服務器標記格式不正確。 在System.Web.UI.TemplateParser.ProcessError(String message)在System.Web.UI.TemplateParser.ParseStringInternal(String text,Encoding fileEncoding)在System.Web.UI.TemplateParser.ParseString(String text,VirtualPath virtualPath,Encoding fileEncoding )-內部異常堆棧跟蹤的結尾--在System.Web.UI.TemplateParser.ParseString(String文本,VirtualPath virtualPath,編碼fileEncoding)在System.Web.UI.TemplateParser.ParseFile(String physicalPath,VirtualPath virtualPath)在System.Web.UI.TemplateParser.Parse()在System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType()在System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)在System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()在System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPat)的System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)處的System.Web.Compilation.BuildProvidersCompiler.PerformBuild() h virtualPath,布爾值noBuild,布爾值allowCrossApp,布爾值allowBuildInPrecompile,布爾值throwIfNotFound,布爾值sureIsUpToDate)位於System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext上下文,VirtualPath虛擬路徑,布爾值NoBuild,布爾值allowCrossApp,布爾值allowBuildInPreCompile,在System.Web.UI.TemplateControl.LoadControl(位於DotNetNuke.UI.ControlUtilities。 DotNetNuke.UI.Modules.ModuleHost.LoadModuleControl()處的LoadControl [T](TemplateControl containerControl,String ControlSrc)-內部異常堆棧跟蹤的結尾-

這是DNN ,但這在其他.net應用程序(例如Sitefinity)中時常發生 ,盡管我可以看到錯誤所在,但它並沒有告訴我從哪里開始尋找。

謝謝 :)

實際的例外是第一行。 “ DotNetNuke.Services.Exceptions.ModuleLoadException”,后跟異常消息。

其余文本大部分是堆棧跟蹤。 如果說拋出錯誤的方法是從多個地方調用的,並且您想知道哪個地方,這將很有用。 您在跟蹤中閱讀的越深,您在呼叫鏈中的了解就越高。 因此,ParseStringInternal調用了TemplateParser.ProcessError,ParseString調用了模板等等。

現在要解決的問題是,服務器標簽的格式不正確。 我對DNN不太熟悉,但是快速搜索消息和異常名稱就可以找到它: http : //www.dotnetnuke.com/Resources/Blogs/EntryId/1496/The-server-tag-is-not-格式正確的哦.aspx

如果文章曾被移動過,其中包含以下解決方案:

此錯誤是由位於EditEntry.ascx文件中的無效字符引起的。 此字符帶有重音,導致崩潰。 為了完全公開,這個(現在)無效字符已經存在了很長一段時間,可能是自第一次公開發布以來。

打開DesktopModules \\ Blog \\ EditEntry.ascx轉到第21行,查找與“ResourcêKey”匹配的字符串(注意時髦的“ e”),將“ê”替換為“ e”。保存並上傳此修復程序將使您重新啟動並運行。

這篇文章在這里介紹了一個不錯的技巧-

點擊鏈接閱讀全文

它告訴您如何將global.asax文件更新為行號。

void Application_Error(object sender, EventArgs e)
{
   // Code that runs when an unhandled error occurs
   Exception ex = Server.GetLastError();

   // get line number from ASPX parse error
   System.Web.HttpParseException httpParseEx = ex as System.Web.HttpParseException;

   if (httpParseEx != null)
   {
       String lineNumber = "Line number: " + httpParseEx.Line;
   }
} 

這就是所謂的callstack 發生問題時,許多調試器或編程環境都會顯示此信息。 通常,您想要做的是從調用堆棧的頂部開始,確定哪些是“系統”調用,哪些是更有可能成為問題根源的調用。 在這種情況下:

DotNetNuke.UI.Modules.ModuleHost.LoadModuleControl()上的DotNetNuke.UI.ControlUtilities.LoadControl [T](TemplateControl containerControl,String ControlSrc)

是問題的最可能根源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM