Да, конечно - разместите это в своей собственной службе NT, а в вашем app.config
определите базовый адрес http. Шаблоны URI, которые вы определили в своем контракте на обслуживание, будут за пределами этого базового адреса:
<services>
<service name="YourNamespace.YourServiceClass">
<host>
<baseAddresses>
<add baseAddress="http://YourServer:9091/Services/" />
</baseAddresses>
</host>
<endpoint address=""
binding="webHttpBinding"
contract="YourNamespace.IYourService" />
</service>
</services>
Тогда ваш шаблон URI будет добавлен к этому базовому адресу, поэтому в этом случае ваш GetFoo
метод будет вызываться по адресу:
http://YourServer:9091/Services/foo/42
Обновление: Я только что воссоздал это здесь, и проблема в следующем: ваш шаблон URI определяет параметр с именем {id}
, но метод, к которому вы применяете этот шаблон URI, не имеет никакого параметра id
в списке параметров:
[WebGet(UriTemplate = "foo/{id}")]
public string GetFoo(string fooID)
Вы должны убедиться, что эти вещи совпадают! С данным шаблоном URI вам нужно изменить объявление метода на:
[WebGet(UriTemplate = "foo/{id}")]
public string GetFoo(string id)
(см. Параметр - теперь его имя id
), и тогда у вас все будет в порядке - по крайней мере, у меня это прекрасно работает.