IIS上的WCF自定义ServiceHost

时间:2015-01-20 11:18:12

标签: c# .net wcf iis

我正在尝试使用IIS上的自定义ServiceHost托管我的WCF服务。我在MSDN上发现了几篇关于这样的文章:Custom Service Host。在这里,我应该在我的服务svc文件中添加一些东西,但我没有,我也不能在visual studio中添加一个。然后我发现了这篇文章:Configuration-Based Activation in IIS and WAS。这说

“基于配置的激活功能消除了拥有.svc文件的要求,从而消除了相关的开销。”

所以我可以在我的Web.config中创建一个serviceHostingEnvironment条目(我也没有,但我认为App.config是等价的,因为它包含我的system.serviceModel配置)。但是,我必须为服务激活指定relativeAddress

“relativeAddress属性必须设置为相对地址,例如<sub-directory>/service.svc~/<sub-directory/service.svc。”

所以它应该指向我的svc文件?我有点困惑,你能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

我知道MSDN上的文档有点令人困惑。以下是您需要放入web.confi / app.config

的配置
<serviceHostingEnvironment>
  <serviceActivations>
    <add relativeAddress="MyNonExistingServiceSVC.svc" service="MyService" factory=”MyServiceHostFactory”/>
  </serviceActivations>
</serviceHostingEnvironment>

这里相对地址只是任何虚拟名称。此名称将用于浏览您的服务元数据。请注意,此名称可以是您选择的任何名称,并且不需要在磁盘上显示相同的物理文件。它只需要带有.SVC扩展名的任何名称。 因此,在访问服务元数据时,您的URL将是

http://myserver/myservice/MyNonExistingServiceSVC.svc