Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在WCF中,是否可以添加全局消息检查器?_Wcf_Global_Behavior - Fatal编程技术网

在WCF中,是否可以添加全局消息检查器?

在WCF中,是否可以添加全局消息检查器?,wcf,global,behavior,Wcf,Global,Behavior,有很多关于全局错误处理程序的问题,但是没有一个能解决我需要的问题 是否有任何方法可以添加通过.config附加到每个端点或服务的行为 *具体来说,我想做的是添加一个记录器,它将捕获并记录每个SOAP请求/响应。但是我更喜欢将该行为自动添加到我拥有的每个服务中,而不是手动将其添加到每个服务中 我研究了行为扩展,认为这是解决方案,但不是,您必须将行为添加到每个服务中。*您可以使用machine.config文件的部分来定义将应用于您机器中所有服务的行为。请注意,更新machine.config实际上

有很多关于全局错误处理程序的问题,但是没有一个能解决我需要的问题

是否有任何方法可以添加通过.config附加到每个端点或服务的行为

*具体来说,我想做的是添加一个记录器,它将捕获并记录每个SOAP请求/响应。但是我更喜欢将该行为自动添加到我拥有的每个服务中,而不是手动将其添加到每个服务中


我研究了行为扩展,认为这是解决方案,但不是,您必须将行为添加到每个服务中。*

您可以使用machine.config文件的部分来定义将应用于您机器中所有服务的行为。请注意,更新machine.config实际上就像使用火箭筒来解决您的问题(在许多情况下,组策略可能会禁止您这样做),因此它可能不适用于所有情况。您还需要确保行为扩展已注册(也在machine.config中),并且与WCF一起使用的任何应用程序都可以访问扩展中引用的程序集(可能通过GAC)


另一种选择是使用公共库来创建服务主机(直接用于自托管服务或通过服务主机工厂用于webhosted服务),并使用该库(这将反过来添加检查器)。

有一个消息检查器来解决这类问题总是很好的。Message Inspector是WCF扩展的一个实现,它可以很好地跟踪服务的每个传入请求和传出响应,即使消息验证失败,它也可以选择陷阱并相应地工作。更准确地说,message inspector可以使用配置文件进行配置,而无需更改现有服务

可以找到有关消息检查器及其实现的更多详细信息

希望这有帮助


快乐编码:)

与论坛网站不同,我们不使用“谢谢”或“感谢任何帮助”或签名。看到了吧。是的,用machine.config的方式似乎有点过分了。我会调查服务主机工厂。谢谢!