我有一个 IIS 托管的 WCF 服务,我需要向它添加一个端点行为。我不能只是将它添加到 web.config。(我们需要支持插件架构,插件编写者将无法访问我的 web.config。)我尝试将其放入服务的静态构造函数中:
var endpointDispatcher = OperationContext.Current.EndpointDispatcher;
SilverlightFaultMessageInspector inspector = new SilverlightFaultMessageInspector();
endpointDispatcher.DispatchRuntime.MessageInspectors.Add(inspector);
但它会引发异常,提示“ServiceHost 打开后无法更改此值”。如果我在添加检查器对象之前调用 host.Close() ,它仍然会引发相同的异常。
我也试过这个:
var host = OperationContext.Current.Host;
host.Description.Endpoints[0].Behaviors.Add(new SilverlightFaultBehavior());
但它似乎没有效果。端点行为永远不会被调用。
那么是否可以将端点行为添加到 IIS 托管的 WCF 服务?