我有一个用 .Net 3.0 VS2008 编写的数据迁移应用程序。

我已经在 Debug模式下部署并复制了 PDB
文件到我要运行的服务器。

我得到一个异常(exception),但没有行号。

这就是我显示异常的方式

为什么没有异常的行号???

马尔科姆

       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;

最佳答案

如果你没有得到行号,那么要么

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

或者

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

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

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

关于.net - 在 dot net app 中没有获得异常的行号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/819895/

10-13 06:23