如果服务托管在 IIS 上,如何修改 WCF 服务配置?

How to modify WCF service configuration if services hosted on IIS?

我在 IIS 上托管了 WCF 服务 (NET 4)。它通过 web.config 配置。 我只想对 runtime 中的现有配置做一些小改动。 似乎使用自定义 ServiceHostFactory/ServiceHost 迫使我复制代码中的所有设置。有什么技巧吗?

是的,你可以 ServiceHostfatory :

<%@ ServiceHost Language="C#" Debug="true"   
                Service="IISHost.HelloService"   
                CodeBehind="/App_code/HelloService.svc.cs" 
                Factory="MyServiceHostFactory" %>

你可以有一个 ServiceHostFactory 实例化你的服务。 因为你实例化了你的服务 "as usual" 你可以有一些代码来读取 XML 配置 - 查看下面评论中的代码:

public class MyServiceHostFactory : ServiceHostFactory{
 protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses ) {
    ServiceHost host = new ServiceHost(typeof(HelloService ));
    // add/modify the endpoints, Behaviors, ... through  
    // host.Description.Endpoints, host.Description.Behaviors …
    return host;
 }
}

此致