asp.net - WCF 远程调试符号的位置

标签 asp.net wcf visual-studio-2010 remote-debugging

这更像是一个“为什么它会这样工作”而不是“我如何使这个工作”之类的问题。

我有一个正在远程调试的 WCF Web 服务。它部署到临时服务器,其中安装了 VS 2010 远程调试器并作为 Windows 服务运行。权限是正确的,我可以毫无问题地附加到进程。我遇到的问题是我无法始终如一地加载符号。

我已将 WCF 服务部署到 C:\Webs\MyService,并在 C:\Webs\MyService\bin 中包含各种 DLL。它被设置为一个单独的站点,拥有自己的应用程序池。我发现,即使 bin 文件夹中有必要的 .pdb 文件,当我从本地计算机附加到 w3wp.exe 进程时,Visual Studio 也不会加载任何符号。发生的情况是,当 IIS 启动并生成工作进程时,我的服务 DLL 将被复制到临时 ASP.NET 文件目录深处,例如 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP .NET 文件\根\19f82539\e55fff8f\程序集\dl3\2926a261\f625d158_f62ecd01。我发现,如果我手动将 .pdb 文件复制到此文件夹中,则会加载符号并且我可以进行调试。

我想知道为什么它会这样工作,以及如何避免手动将符号文件复制到另一个目录。更糟糕的是,如果我必须进行更改并重新部署,工作进程将无法识别它们。我必须重新启动 IIS,这会导致创建不同的临时目录,需要我再次复制 .pdb。

最佳答案

我在网络应用程序方面也有类似的问题。显然微软已经意识到了这一点:http://go4answers.webhost4life.com/Example/remote-debugging-symbols-not-loaded-207525.aspx

希望他们很快就会发布修复程序。

BrianR 对相关问题也提出了建议,Why are no Symbols loaded when remote debugging? ,表示创建一个包含调试文件的文件夹,并在远程服务器上将环境变量 _NT_SYMBOL_PATH 指向它。

关于asp.net - WCF 远程调试符号的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10542880/

相关文章:

html - TR Css 类与之前的 TR 相同

wcf - 验证 WCF 中的每个调用

.net - 远程 UI 是否应该使用 SOA 来实现?

c++ - VS 2010 无法打开源文件 "string"

c++ - Visual Studio 2010 中 std::make_shared() 的友元函数(不是 Boost)

c# - 处理表单时如何获取更新的 FormView 值?

c# - 如何从自定义属性中获取属性的显示名称

ASP.NET 在生产机器上变得 FUBAR

c# - WCF是否缓存存储过程

debugging - 我可以使用 pdb 文件逐步执行第 3 方程序集吗?