【发布时间】:2011-05-03 20:23:23
【问题描述】:
我有一个 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 服务?
【问题讨论】:
-
拉迪斯拉夫是对的。我还发现以下页面对这个主题很有帮助:MSDN: Custom Service HostMSDN: ServiceHostFactory Class
标签: wcf iis wcf-endpoint endpointbehavior