0
我有IIS上託管的WCF服務(NET 4)。它通過web.config配置。 我只想對運行時中的存在配置進行一些小改動。 看來使用自定義的ServiceHostFactory/ServiceHost強制我複製代碼中的所有設置。有什麼竅門嗎?如何在IIS上託管服務時修改WCF服務配置?
我有IIS上託管的WCF服務(NET 4)。它通過web.config配置。 我只想對運行時中的存在配置進行一些小改動。 看來使用自定義的ServiceHostFactory/ServiceHost強制我複製代碼中的所有設置。有什麼竅門嗎?如何在IIS上託管服務時修改WCF服務配置?
是你可以有一個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;
}
}
問候
非常感謝!正是我需要的! – garry
如果修改運行時配置文件,您將重新啓動應用程序。在這種情況下,您有兩個選擇 - 要麼在代碼中進行配置,要麼將配置信息存儲在單獨的文件中,但是您必須讀取單獨的文件,並且可能必須創建代碼才能執行此操作。更容易在這個場景的代碼中完成它:) IMO: – Tim