Я создал следующую службу RESTful WCF, которая прекрасно работает при запуске в VS.
[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json,
UriTemplate = "/sales/start={start}&end={end}")]
List<Sales> GetSalesByDate(string start, string end);
Однако при развертывании этого на моем тестовом сервере (под управлением Win2K3 и IIS6) я получил следующую ошибку сервера:
Операция 'GetSalesByDate' в контракте 'ISalesService' использует GET, но также имеет параметр тела 'start'. Операции GET не могут иметь тела. Либо сделайте параметр start значением UriTemplate, либо переключитесь с WebGetAttribute на WebInvokeAttribute.
Очевидно, я уже запустил UriParameter. Так может кто-нибудь сказать мне, почему выбрасывается исключение?
EDIT:
Для справки, вот мой файл конфигурации:
<?xml version="1.0"?>
<configuration>
<system.serviceModel>
<services>
<service name="Services.SalesService">
<endpoint behaviorConfiguration="webBehavior"
binding="webHttpBinding"
contract="Services.ISalesService"/>
</service>
</services>
<behaviors>
<endpointBehaviors>
<behavior name="webBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
</configuration>