我有一个WCF服务DLL,当我调试它时会自动托管并且这个自定义URL映射有效:
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "widget/{myid}")]
public Widget GetWidget(string myid) {...
我的配置文件有:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=c03f5f7f11d50a3b" />
</modules>
</system.webServer>
但是我想在我自己的服务中托管,所以我现在想,而是使用配置的system.serviceModel
部分,因此我不能使用System.Web.Routing.UrlRoutingModule
。
我有自托管服务;但是,它会自动调用我的网址GetWidget
而不是widget/{myid}
。所以它没有使用我的WebInvoke
属性。
如果我通过ServiceHost对象在我自己的Windows NT服务中手动托管我的WCF服务,我如何仍然支持具有相同类型映射的自定义URL?