У меня есть DLL-библиотека службы WCF, и при отладке она автоматически размещается, и это пользовательское сопоставление 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
.
У меня работает служба самообслуживания;однако он автоматически вызывает мой URL GetWidget
вместо widget/{myid}
.Поэтому он не использует мой атрибут WebInvoke
.
Если я вручную размещаю свою службу WCF в собственной службе Windows NT через объект ServiceHost, как я могу по-прежнему поддерживать настраиваемые URL-адреса с таким же типом сопоставления?