标题基本概括。
我有一个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文件旁边。哦,好吧,我想我必须在安装程序上做…
但是现在,任务完成了!