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



标题基本概括。

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

到目前为止,它似乎很有效。而且,我愚蠢地认为,这应该足以让它知道在哪里选择包含调试信息的.pdb文件,并在发生意外异常时包含这些信息。(.pdb文件在那里,顺便说一下…紧挨着组成COM+应用程序的.dll文件)。

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

我是否需要做一些其他的事情,以便使我的COM+应用程序不仅返回函数名,而且还返回由异常引发的堆栈跟踪中的行号?

答对了!

经过1年断断续续的寻找答案,我想我终于找到了可行的方法。

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

不幸的是,似乎没有一种方法(或工具)将。pdb文件自动放置在GAC中的。dll文件旁边。哦,好吧,我想我必须在安装程序上做…

但是现在,任务完成了!

最新更新