行号不会出现在COM +应用程序抛出的异常的堆栈跟踪中。为什么?

时间:2011-09-28 16:42:11

标签: .net stack-trace com+ line-numbers

标题基本上总结了它。

我有一个使用VB.NET 2010实现的COM +服务器应用程序,它被配置为使用http://msdn.microsoft.com/en-us/library/windows/desktop/ms685134(v=vs.85).aspx中描述的过程从其自己的.config文件中收集数据。

到目前为止,它看起来像一个魅力。我愚蠢地认为它应该足以让它知道在哪里选择包含调试信息的.pdb文件,并在出现意外异常时包含这些信息。 (.pdb文件在那里,顺便说一句......紧挨着组成COM +应用程序的.dll文件)。

毕竟,看起来我错了;从COM +应用程序抛出的所有异常都显示被调用的函数,但相关的行号。

我是否需要执行其他操作才能使我的COM +应用程序不仅返回函数名称,而且还返回由异常引发的堆栈跟踪中的行号?

1 个答案:

答案 0 :(得分:1)

宾果!

经过1年的间歇性寻找答案,我想我终于找到了有用的东西。

您会看到,作为推荐做法,MS会要求您将COM +展开的程序集放在GAC中。你猜怎么着?如果将.pdb文件放在包含这些程序集的GAC文件夹中,突然之间,.NET现在可以找到该死的.pdb文件!现在所有堆栈跟踪都包含行号!我啊!

UNFORTUNATELY,似乎没有办法(或工具)将.pdb文件自动放在GAC中的.dll文件旁边。哦,好吧,我猜我必须在安装程序上做这件事......

但是现在,任务完成了!