没有获得点网应用程序中的异常行号

Mal*_*olm 4 .net

我有一个在.Net 3.0 VS2008中写入的数据迁移应用程序.

我已经部署在调试模式下并将PDB文件复制到我想要运行的服务器上.

我得到一个例外但没有行号.

这是我显示异常的方式

为什么没有例外的行号???

马尔科姆

       string msg = string.Format("{0} {1} {2}",ex.Message,ex.StackTrace.ToString(),ex.Source.ToString());               
        if(ex.InnerException != null)
            msg += string.Format(" {0}", ex.InnerException.ToString());
        return msg;
Run Code Online (Sandbox Code Playgroud)

Ada*_*son 10

如果你没有获得行号,那么

a) .NET运行时确定.pdb与程序集不匹配(过期,使用优化编译等)

要么

b)程序集从一个与包含.pdb的目录不同的目录运行(Windows服务,例如,在%WINDOWS%\ System32下运行)

这听起来不像第一种可能性适用于您,这是一个Windows服务还是正在更改执行目录?

在任何情况下,您都应该能够使用该AppDomain.CurrentDomain.BaseDirectory属性来确定将搜索程序集和.pdb的位置(默认情况下,这可以被覆盖但如果它被更改则应该是一个很好的指示器)

  • 很棒的答案!我想你涵盖了所有的可能性.+1 (2认同)