我正在为一位客户更新他的Web应用程序C#(以便将来迁移到更新的技术)。
有单独的配置,其中一个我们需要在发生异常时在堆栈跟踪中显示行号。构建和高级构建设置已调整(仅Pdb),然后部署(到Azure App Service)。
现在,当发生错误时,会触发异常,但它仍然不显示行号。
Advance Build Settings
已更新为:Advance Build Settings
此外,在关闭Visual Studio(Community/Professional和Enterprise)2022时,在保存更改并重新打开项目后,系统信息已设置回无。
stacktrace示例:
Stacktrace:
System.NullReferenceException: Object reference not set to an instance of an object.
at MyApp.SiteMaster.master_Page_PreLoad(Object sender, EventArgs e)
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Web.UI.Page.OnPreLoad(EventArgs e)
at System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
字符串
**应为(粗体):**Stacktrace:
System.NullReferenceException: Object reference not set to an
instance of an object.
at MyApp.SiteMaster.master_Page_PreLoad(Object sender, EventArgs e)
**in C:\code\MyApp\project\MyApp\Site.Master.cs:line 64**
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Web.UI.Page.OnPreLoad(EventArgs e)
at System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
型
1条答案
按热度按时间4uqofj5v1#
经过进一步的调查,它似乎是配置配置文件有点“损坏”。即使在保存任何新的更改被丢弃。该解决方案有多个项目(Web,类,.),它是适用于任何项目。虽然默认的安装/发布配置文件不是一个问题。
为了解决这个问题,我必须做一些重构:
1.从解决方案中删 debugging 误的配置文件
1.执行
Get-Project -All | Foreach { $_.ConfigurationManager.DeleteConfigurationRow("PROFILENAME") }
以清除所有剩余的1.创建新的配置文件(*注意: 不要使用与已删除的配置文件相同的名称,否则也不起作用 *)
1.在解决方案上设置配置(生成)
1.更新每个项目的生成配置文件
1.在适用的情况下,在每个项目中重新创建/重新创建App. config.config / Web. config.config文件。
1.更新发布概要文件以使用新的配置概要文件。
一旦所有这些都完成了,我就可以对构建概要文件进行更改,并使用PDB的生成进行构建。安全起见,我在一个单独的分支中这样做了!只是为了安全起见。