2

WCF REST Contribを使用して .NET 3.5 で REST サービスを設計しようとしています。私のサービスはほぼ正常に動作していますが、奇妙なエラーに直面しています。

基本的に、私は2つの方法があります:

[WebInvoke(UriTemplate = "/books?id={identity}", Method = "PUT")]
public string InsertBook(string identity, Book book)
{
 // snipped
}

[WebInvoke(UriTemplate = "/books?id={identity}", Method = "GET")]
public Books[] ListBooks(string identity)
{
 // snipped
}

それでも、アクティベーション時にエラーメッセージが表示されます:

System.InvalidOperationException がユーザー コードによって処理されませんでした詳細については、UriTemplateTable のドキュメントを参照してください。ソース="System.ServiceModel.Web"

2番目のメソッドの名前を変更すると、正常に/books2?identity機能します。

UriTemplateTableが動詞を区別しない理由は何ですか?

4

1 に答える 1

2

最後に解決策を見つけました。webHttpBindingweb.config では、バインディングを(デフォルトではなく)として指定する必要がありますbasicHttpBinding

<system.serviceModel>
  <services>
    <service name="Foo.MyService">
      <endpoint address="" binding="webHttpBinding" contract="Foo.MyService" />
    </service>
  </services>
</system.serviceModel>
于 2010-04-27T16:22:41.257 に答える