【问题标题】:How to show the detailed stack trace in IIS?如何在 IIS 中显示详细的堆栈跟踪?
【发布时间】:2016-02-02 10:43:07
【问题描述】:

我有一个应用程序托管在 IIS 中,但出现空引用异常:

如您所见,没有堆栈跟踪,仅显示一般异常“对象引用未设置为对象的实例”

但我不知道异常流向何处。

我无法将整个目录替换到服务器,因为那里还有一些其他文件夹。

有没有办法解决这个问题?

【问题讨论】:

  • 你可以看到Com.Vizz.Web.Index.Page_Load方法崩溃了
  • CustomError 应该关闭...你试过了吗?
  • @Zippy 是的,但我很难深入了解错误流向哪一行,因为 Page_Load 大约有 100 行。 :(
  • @AmitSoni 自定义错误已关闭,否则此异常页面将不会显示,我仔细检查了 web.config
  • 尝试在 web.config 中使用<compilation debug="true">,看看它是否有帮助,即使它在生产环境中不推荐(blogs.msdn.com/b/prashant_upadhyay/archive/2011/07/15/…)

标签: c# exception iis


【解决方案1】:

如果您确实有权访问程序集,那么+72 几乎足以让您知道哪一行代码是原因,

http://odetocode.com/blogs/scott/archive/2005/01/25/funny-numbers-in-my-stack-trace.aspx

【讨论】:

    【解决方案2】:

    将此添加到您的 web.config。

    <system.diagnostics>
        <sources>
          <source name="System.ServiceModel" switchValue="Information, ActivityTracing" propagateActivity="true">
            <listeners>
              <add name="xml" />
            </listeners>
          </source>
          <source name="CardSpace">
            <listeners>
              <add name="xml" />
            </listeners>
          </source>
          <source name="System.IO.Log">
            <listeners>
              <add name="xml" />
            </listeners>
          </source>
          <source name="System.Runtime.Serialization">
            <listeners>
              <add name="xml" />
            </listeners>
          </source>
          <source name="System.IdentityModel">
            <listeners>
              <add name="xml" />
            </listeners>
          </source>
        </sources>
    
        <sharedListeners>
          <add name="xml" type="System.Diagnostics.XmlWriterTraceListener" initializeData="c:\logs\Traces.svclog" />
        </sharedListeners>
      </system.diagnostics>
    

    这会输出更深入的跟踪日志。您将需要服务跟踪查看器工具来查看它。 https://msdn.microsoft.com/en-us/library/ms732023%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396

    【讨论】:

      【解决方案3】:

      既然你接受了告诉你找到有问题的源代码行的答案,我认为这就是你想要的。

      将编译器生成的 PDB 部署到生产环境。这不会影响性能并提供行号。

      【讨论】:

      • 谢谢你的信息,原来页面加载中的一个对象没有签名所以它是空的
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多