以下の署名で WCF POST サービスを作成しました。これは IIS で正常にホストされており、サービスのヘルプ ページで次のように確認できます。
[OperationContract]
[WebInvoke(BodyStyle = WebMessageBodyStyle.Wrapped,
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
Method = "POST",
UriTemplate = "TestMethod/{lang}/{str}/{selectedstring}/")]
string TestMethod(string lang, string str, string selectedstring, string mylist, int testval);
サービスのヘルプページでは、メソッドは次のように正しく表示されます
TestMethod/{lang}/{str}/{selectedstring}/ || POST || Service at http://localhost:86/MyRestService.svc/TestMethod/{LANG}/{STR}/{SELECTEDSTRING}/
以下のオプションでフィドラーを使用してこのサービスを呼び出そうとしています(ブログのいくつかのルックアップに基づいています):
方法: ポスト
URL - 'http://servername:86/MyRestService.svc/TestMethod/en-us/str1/qad11/'
必須 ヘッダー: ユーザーエージェント: Fiddler ホスト: サーバー名:86 コンテンツタイプ: アプリケーション/xml
リクエスト本文:
<TestMethod xmlns="http://tempuri.org/"><mylist>string val</mylist><testval>3</testval></TestMethod>
ただし、.net テスト スタブからサービスを呼び出そうとすると、常に HTTP 結果コード 411 (Length Required) が表示されます。