【问题标题】:ASP.NET production server PDB filesASP.NET 生产服务器 PDB 文件
【发布时间】:2012-11-01 11:40:13
【问题描述】:

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

我应该在生产环境中删除它们还是保留它们

【问题讨论】:

标签: c# asp.net


【解决方案1】:

当您的应用程序抛出未处理的异常时,PDB 文件允许记录代码的堆栈跟踪。

如果您的网站在 web.config 中将 CustomErrors 设置为 OFF,那么每个人都可以看到您的错误代码。这很糟糕。

如果您的网站将 web.config 中的 CustomErrors 设置为 ONRemoteOnly,那么您的错误代码将不会对公众可见,但是您将能够在服务器事件日志中找到 StackTrace这可以帮助您追踪代码中的错误。没关系。

如果您删除 PDB(或通过项目构建/发布配置停止发布),那么您的站点将不会在 Stack Trace 中记录您的代码,但会记录其他堆栈信息。在任何情况下,始终将 web.config 中的 CustomErrors 设置为 ONRemoteOnly。总是这样做。

【讨论】:

【解决方案2】:

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

如果您不希望部署 pdb 文件,请在项目设置中(右键单击项目并选择 Properties > Build):

您可以选择用于部署的Configuration:(例如Release),然后在Output 部分中,按Advanced.. 按钮打开高级构建设置 并将Debug Info: 设置为none(通常在Release 模式下为pdb-only)。

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

【讨论】:

  • 那么,PDB 文件不是必需的吗?并且每次更新 DLL 文件时我们都不必在服务器中更新它们? :-?
  • @Reza 正确。代码仍然可以工作。我通常会删除它们,仅在需要调试生产服务器时才添加 =)
【解决方案3】:

PDB 文件用于调试,但您可以将它们留在生产服务器上。不会有不好的事情发生

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 1970-01-01
    • 2013-04-03
    • 2019-11-17
    • 1970-01-01
    • 2011-04-18
    相关资源
    最近更新 更多