如何调试WCF程序
您需要将调试器附加到您的WCF服务中运行的进程。
如果在IIS你需要连接到相应的w3p.exe过程。
如果在一个独立的应用程序或Windows服务,附加到您的EXE的名称。
在Visual Studio中,在调试器菜单上有一个“附加到进程”。打开相关的代码,设置一个断点,然后调用导致该代码路径执行的服务。
在调试之外,使用可切换级别的.net跟踪是了解正在发生的事情的好方法。我通常将sys内部的debugview设置为颜色突出显示错误和警告,并在运行代码或测试时不断运行它。在工作中,我的周围视觉中出现彩色线条,这些线条会发现问题
附加到服务本身,而不是调用它的代码。
要在visual studio 2010中调试WCF服务,请转到Debug - > Attach to Process。选中“显示所有用户的进程”,如果使用的是IIS,则选择w3p.exe,否则选择应用程序的名称。放入一个断点,进行调用,然后可以开始调试。
如果它是一个web应用程序(我建议这样做),您可以右键单击该项目,转到Web选项卡,然后在开始操作下选择“不要打开页面,等待来自外部的请求应用”。保存并关闭此设置,然后按F5开始调试。
Web应用程序调试为我节省了大量时间! – 2017-03-01 08:35:36
如果您正在寻找跟踪的WCF活动,看是否以正确的顺序产生的流量,那么我会推荐以下方法之一:
1)使用fiddler观看WCF流量。
2)使用WCF跟踪侦听器来监视实际的WCF调用。这在尝试确定序列化失败的原因时非常有用。您可以通过添加以下块你的web.config的配置块启用此:
上生成的文件将打开WCF服务日志查看器,这将分析该文件为你,让你<system.diagnostics>
<sources>
<source name="System.ServiceModel"
switchValue="Information, ActivityTracing"
propagateActivity="true">
<listeners>
<add name="traceListener"
type="System.Diagnostics.XmlWriterTraceListener"
initializeData="c:\log\WebTrace.svclog" />
</listeners>
</source>
</sources>
</system.diagnostics>
双击钻入特定的调用并查看发生的实际异常。
这对我来说**非常有用。非常感谢! – LoBo 2013-02-15 11:15:11
当运行一个访问WCF应用服务有经常参与
- 客户端程序两个过程被访问WCF服务
- 服务器的过程,承载WCF服务
这听起来像你正在调试客户端进程。为了逐步执行实际的WCF服务代码,您需要将Visual Studio调试器附加到托管服务的进程,并在代码中设置断点。
注意:Visual Studio可以同时附加到多个进程,因此您可以在同一会话中调试客户端和服务器代码。使用
- 工具 - >附加到进程
有一个更简单的方法。只需在Visual Studio中启动多个进程。右键点击解决方案。点击属性。选择启动项目。点击多个启动项目。将WCF和客户端项目设置为Action = Start。现在您将逐步浏览WCF以及客户端。
这可能应该被选作正确答案 – Sergei 2016-03-27 13:44:31
如何运行WCF服务?在IIS内部还是作为独立应用程序? – 2012-01-06 02:39:08