我有一个用 .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/