这更像是“为什么这样做”,而不是“我如何使这项工作”成为一个问题。
我有一个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 Files \ root \ 19f82539 \ e55fff8f \ assembly \ dl3 \ 2926a261 \ f625d158_f62ecd01。我发现如果手动将.pdb文件复制到此文件夹,则会加载符号,我可以进行调试。
我想知道为什么它会以这种方式工作,以及如何避免手动将符号文件复制到另一个目录。更糟糕的是,如果我必须进行更改并重新部署,工作进程将无法识别它们。我不得不重新启动IIS导致创建了不同的临时目录,要求我再次复制.pdb。
答案 0 :(得分:2)
我遇到了与Web应用程序类似的问题。显然,微软已经意识到这一点:http://go4answers.webhost4life.com/Example/remote-debugging-symbols-not-loaded-207525.aspx
希望他们能尽快发布修补程序。
BrianR还提出了一个相关问题Why are no Symbols loaded when remote debugging?的建议,说要创建一个包含调试文件的文件夹,并在远程服务器上指向环境变量_NT_SYMBOL_PATH。