asp.net Web表单- .Net Framework 4.7.2

m1m5dgzv  于 2023-11-20  发布在  .NET
关注(0)|答案(1)|浏览(135)

我正在为一位客户更新他的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)

4uqofj5v

4uqofj5v1#

经过进一步的调查,它似乎是配置配置文件有点“损坏”。即使在保存任何新的更改被丢弃。该解决方案有多个项目(Web,类,.),它是适用于任何项目。虽然默认的安装/发布配置文件不是一个问题。
为了解决这个问题,我必须做一些重构:
1.从解决方案中删 debugging 误的配置文件
1.执行Get-Project -All | Foreach { $_.ConfigurationManager.DeleteConfigurationRow("PROFILENAME") }以清除所有剩余的
1.创建新的配置文件(*注意: 不要使用与已删除的配置文件相同的名称,否则也不起作用 *)
1.在解决方案上设置配置(生成)
1.更新每个项目的生成配置文件
1.在适用的情况下,在每个项目中重新创建/重新创建App. config.config / Web. config.config文件。
1.更新发布概要文件以使用新的配置概要文件。
一旦所有这些都完成了,我就可以对构建概要文件进行更改,并使用PDB的生成进行构建。安全起见,我在一个单独的分支中这样做了!只是为了安全起见。

相关问题