3

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

有没有办法通过.config添加将附加到每个端点或服务的行为?

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

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

4

2 回答 2

1

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

有关您的消息检查器及其实现的更多详细信息,请参见此处

希望这可以帮助 !!

快乐编码:)

于 2013-10-28T07:35:34.957 回答
1

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

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

于 2013-03-21T22:16:58.883 回答