我在同一个解决方案中有一个WCF测试服务和一个测试客户端.该服务配置为在localhost上运行(即" http:// localhost:8731/Design_Time_Addresses/MyService/Service ")我运行客户端应用程序并正确调用该服务并获得正确的答案.我已通过日志验证它确实运行了我的机器本地服务.但是,我无法在运行客户端时调试服务.WCF应该只允许单步执行,但服务上没有断点,并且进入服务调用也不起作用.有没有人见过这个?
我检查了所有明显的东西,比如"生成的PDB文件是什么?" - 是的.如果我自己运行服务项目,然后用一些测试客户端点击它,断点就会被正确命中.因此调试服务工作.我甚至可以明确地"附加到远程进程"并以这种方式调试服务.但是WCF不会自动从客户端步入服务.
msu*_*lis 22
我也遇到过这种情况.奇怪的是,在我对构建配置进行更改(从x64到x86)后,似乎发生了这种情况.以下是我能够解决的问题:
即使我在本地IIS服务器(而不是VS开发服务器)中托管项目,这也解决了它,这有点令人费解.我怀疑将项目设置为"启动"也会导致VS附加到进程进行调试.
http://msdn.microsoft.com/en-us/library/bb157685.aspx
您是否在 Visual Studio 中使用自动 WCF 服务托管功能?您可以通过打开 WCF 服务项目的项目属性并导航到“WCF 选项”选项卡来检查这一点。是否选中“调试同一解决方案中的另一个项目时启动 WCF 服务主机”复选框?如果是的话,这就解释了问题。
发生的情况是,当您运行客户端时,会创建一个单独的进程来自动托管您的 WCF 服务。因为它是一个单独的进程,所以在调试客户端时您将无法“步入”它。您必须运行两个单独的调试会话,一个用于您的服务,另一个用于您的客户端。
执行此操作的一个简单方法是在服务的启动逻辑中调用 System.Diagnostics.Debugger.Break()。当 WCF 服务主机自动启动您的服务时,系统将提示您对其进行调试,从而允许您打开 Visual Studio 的第二个实例来进行调试会话。
| 归档时间: |
|
| 查看次数: |
25495 次 |
| 最近记录: |