我正在构建一个Web应用程序。 这就是我的工作。
将解决方案Configuration Manager设置为Release。 因此,所有项目都在构建Release版本。 然后我清理解决方案并构建所有。 然后我“构建部署包”。
当从部署包运行已安装的代码时,我注意到编译源中存在错误时会出现源文件! 这是怎么回事,我正在构建Release配置。 源代码肯定不在发行版中,所以它必须在dll中。
有办法阻止这个吗?
答案 0 :(得分:2)
假设您正在讨论“黄色死亡屏幕”ASP.NET错误页面,显示异常的源代码位置;由于在构建和部署包中包含调试符号而发生这种情况。这是与您的*.pdb
文件名称相同的*.dll
个文件。
这本身并不坏。但是,您不应该向最终用户显示这些错误。即使没有调试符号,这些错误消息也会显示太多信息。您应该处理错误并向用户显示“安全友好”的错误消息。
如果要删除调试符号,可以删除PDB文件。您还可以更改项目中的构建属性,并删除包含调试符号的选项。
答案 1 :(得分:1)
除了Andrew的回答,您还应该检查您的web.config是否已禁用调试:
<compilation debug="false"/>
这应该可以防止源代码显示在“黄色死亡屏幕”中。