【发布时间】:2012-11-01 11:40:13
【问题描述】:
在开发时,我明白为什么要构建 PDB 文件。 但是当我为生产服务器部署我的网站时,PDB 文件仍然存在。 我不明白为什么。
我应该在生产环境中删除它们还是保留它们
【问题讨论】:
在开发时,我明白为什么要构建 PDB 文件。 但是当我为生产服务器部署我的网站时,PDB 文件仍然存在。 我不明白为什么。
我应该在生产环境中删除它们还是保留它们
【问题讨论】:
当您的应用程序抛出未处理的异常时,PDB 文件允许记录代码的堆栈跟踪。
如果您的网站在 web.config 中将 CustomErrors 设置为 OFF,那么每个人都可以看到您的错误代码。这很糟糕。
如果您的网站将 web.config 中的 CustomErrors 设置为 ON 或 RemoteOnly,那么您的错误代码将不会对公众可见,但是您将能够在服务器事件日志中找到 StackTrace这可以帮助您追踪代码中的错误。没关系。
如果您删除 PDB(或通过项目构建/发布配置停止发布),那么您的站点将不会在 Stack Trace 中记录您的代码,但会记录其他堆栈信息。在任何情况下,始终将 web.config 中的 CustomErrors 设置为 ON 或 RemoteOnly。总是这样做。
【讨论】:
您可以安全地删除它们。它们用于调试和代码源目的。
如果您不希望部署 pdb 文件,请在项目设置中(右键单击项目并选择 Properties > Build):
您可以选择用于部署的Configuration:(例如Release),然后在Output 部分中,按Advanced.. 按钮打开高级构建设置 并将Debug Info: 设置为none(通常在Release 模式下为pdb-only)。
那么每次您在发布模式下部署时,都不会生成 pdb 文件。
【讨论】:
PDB 文件用于调试,但您可以将它们留在生产服务器上。不会有不好的事情发生
【讨论】: