2015-10-23 154 views
0

我有IIS上託管的WCF服務(NET 4)。它通過web.config配置。 我只想對運行時中的存在配置進行一些小改動。 看來使用自定義的ServiceHostFactory/ServiceHost強制我複製代碼中的所有設置。有什麼竅門嗎?如何在IIS上託管服務時修改WCF服務配置?

+0

如果修改運行時配置文件,您將重新啓動應用程序。在這種情況下,您有兩個選擇 - 要麼在代碼中進行配置,要麼將配置信息存儲在單獨的文件中,但是您必須讀取單獨的文件,並且可能必須創建代碼才能執行此操作。更容易在這個場景的代碼中完成它:) IMO: – Tim

回答

1

是你可以有一個ServiceHostfatory

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

,你可以有一個ServiceHostFactory是instanciates您服務。 因爲你實例化服務「像往常一樣」,你可以有一些代碼,在下面的意見,在代碼讀取XML配置-Look:

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; 
} 
} 

問候

+0

非常感謝!正是我需要的! – garry