C# ASP.NET生产服务器PDB文件

C# ASP.NET生产服务器PDB文件,c#,asp.net,C#,Asp.net,开发时,我理解为什么要构建PDB文件。 但当我为生产服务器部署网站时,PDB文件仍然存在。 我不明白为什么 我应该在生产环境中删除它们还是将它们保留在PDB文件中进行调试,但您可以将它们保留在生产服务器上。不会有什么不好的事情发生您可以安全地移除它们。它们用于调试和代码源目的 如果不希望部署pdb文件,请在项目设置中(右键单击项目并选择“属性”>“生成”): 您可以选择用于部署的配置:(例如发布),然后在输出部分,按高级..-按钮打开高级生成设置,并将调试信息:设置为无(通常在发布模式下仅为pd

开发时,我理解为什么要构建PDB文件。 但当我为生产服务器部署网站时,PDB文件仍然存在。 我不明白为什么


我应该在生产环境中删除它们还是将它们保留在PDB文件中进行调试,但您可以将它们保留在生产服务器上。不会有什么不好的事情发生

您可以安全地移除它们。它们用于调试和代码源目的

如果不希望部署pdb文件,请在项目设置中(右键单击项目并选择“属性”>“生成”):

您可以选择用于部署的
配置:
(例如
发布
),然后在
输出
部分,按
高级..
-按钮打开高级生成设置,并将
调试信息:
设置为
(通常在发布模式下仅为
pdb


然后,每次在发布模式下部署时,都不会生成pdb文件。

当应用程序引发未处理的异常时,pdb文件允许记录代码的堆栈跟踪

如果您的网站在web.config中将
CustomErrors
设置为
OFF
,则您的错误代码将对所有人可见。这很糟糕

如果您的网站在web.config中将
CustomErrors
设置为
ON
RemoteOnly
,则您的错误代码对公众不可见,但是您可以在服务器事件日志中找到StackTrace,这可能有助于您跟踪代码中的错误。这没关系


如果删除PDB(或通过项目生成/发布配置停止发布),则站点不会在堆栈跟踪中记录代码,但会记录其他堆栈信息。在任何情况下,始终将web.config中的
CustomErrors
设置为
ON
RemoteOnly
。始终执行此操作。

检查此问题,以便PDB文件不是nessecory?我们不必每次更新DLL文件时都在服务器上更新它们@雷扎:没错。代码仍然有效。我通常会删除它们,并且只在需要调试生产服务器时添加它们=)异常在任何情况下都将包含堆栈跟踪,但对于PDB文件,它们还将包含行号。