1

标题基本上概括了它。

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

到目前为止,它似乎就像一个魅力。而且我愚蠢地假设它应该足以知道在哪里选择包含调试信息的 .pdb 文件,并在出现意外异常时包含此类信息。(.pdb 文件就在那里,顺便说一句......就在构成 COM+ 应用程序的 .dll 文件旁边)。

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

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

4

1 回答 1

1

答对了!

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

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

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

但就目前而言,任务完成了!

于 2012-11-22T18:44:40.610 回答