如果服务托管在 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;
}
}
此致
我在 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;
}
}
此致