以下のボックスのように構成されたサービスは、パラメーターに不一致がある場合に 404 をスローしますか? この場合、パラメーターは複合型であり、SearchJson メソッドへのすべての呼び出しは 404 を返します... (WebInvoke オプションを使用し、UriTemplate を使用しない場合でも許可されますか?)
サービスが稼働しています (「Generate your client ..?wsdl」-stuff を使用して Testpage を呼び出すことができます)
サービス メソッドは次のように構成されます。
[OperationContract]
[FaultContract(typeof(Exception))]
[WebInvoke(ResponseFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
RequestFormat = WebMessageFormat.Json)]
SearchResponse SearchJson(SearchRequest req);
これを解決する方法はありますか?
ところで。これは私がテストに使用するものです...どのパラメーターを変更しても、404が返されます... WebInvokeをWebGetに変更し、パラメーターとして単純型を使用する場合にのみ、別の動作をトリガーできます( string など) ...その後、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>