我正在尝试使用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文件?我有点困惑,你能指出我正确的方向吗?
答案 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