尝试在WCF中实现行为扩展

时间:2016-06-30 14:23:04

标签: .net web-services wcf

我正在尝试在WCF中添加自定义SOAP标头,以便向客户端请求提供有关状态的更多信息。

我已经引用了许多关于如何实现行为扩展的示例。 https://blogs.msdn.microsoft.com/mohamedg/2012/10/21/adding-custom-soap-headers-in-wcf/ https://ovaismehboob.wordpress.com/2011/06/23/inspecting-messages-in-wcf/ https://blogs.msdn.microsoft.com/carlosfigueira/2011/06/28/wcf-extensibility-behavior-configuration-extensions/

设置似乎并不困难。我在Visual Studio 2012中进行调试。我看到的行为是在调试时遇到BehaviorExtensionElement.BehaviorType方法。但是,EndPointBehavior方法未被命中。我已多次检查web.config以确保正确设置值。看来,由于正在触发BehaviorType方法,因此web.config设置应该是好的。我读过很多文章/主题,说明为什么这可能不起作用,但没有取得任何进展。

我想确切地说明我是如何调试它的,以确保我没有遗漏与在Visual Studio中调试服务相关的内容。我在解决方案资源管理器中突出显示.svc文件,然后启动调试器,启动Visual Studio Web服务测试界面。接口启动时,将触发BehaviorType方法。然后我按F5大约4次,界面完全渲染。我双击我的一个服务方法,输入所需的参数并提交。我对它如何工作的理解是我应该在自定义端点行为类中点击BeforeSendReply方法。我对类中的所有方法都有断点 - 甚至是未实现的方法。

我还想提一下CreateBehavior方法没有被击中。

我感谢任何建议。

谢谢, 汤姆

1 个答案:

答案 0 :(得分:0)

在通过web.config中的不同配置以及略有不同的代码之后,我能够使端点行为正常工作。