Служба, которая настроена как в поле ниже, выбрасывает 404, когда есть несоответствие в параметре?
В этом случае параметр является сложным типом, и каждый вызов метода SearchJson возвращает 404 ...
(это даже разрешено с опцией WebInvoke и БЕЗ UriTemplate?)
Служба запущена и работает (я могу вызвать тестовую страницу с помощью "Generate your client ..? Wsdl" -stuff)
Сервисный метод настроен как:
[OperationContract]
[FaultContract(typeof(Exception))]
[WebInvoke(ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json)]
SearchResponse SearchJson(SearchRequest req);
Есть идеи, как решить эту проблему?
кстати. это то, что я использую для тестирования ... независимо от того, какой параметр я изменяю, возвращается 404 ... я могу вызвать другое поведение, только когда я изменяю WebInvoke на WebGet и использую простой тип как параметр (например, строку) ... тогда я получаю 405
WebRequest req = HttpWebRequest.Create("http://localhost:8800/SearchService/SearchJson");
req.Method = "POST";
req.ContentType = "application/json";
req.ContentLength = 354;
WebResponse resp = req.GetResponse();
Вот конфиг:
<service name="SearchEngine.SearchService" behaviorConfiguration="HTTPGetBehavior">
<endpoint address="SearchEngine.SearchService"
behaviorConfiguration="ajaxBehavior"
binding="webHttpBinding"
contract="SearchEngine.ISearchInterface" />
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:8800/SearchService" />
</baseAddresses>
</host>
</service>