6

WCF を REST で動作させるために web.config に入れる必要がある最低限のものは何ですか? [WebGet] でメソッドに注釈を付けましたが、メッセージが表示されません。

4

3 に答える 3

6

*.svc ファイルの ServiceHost ディレクティブに次を追加すると、WebHttpBinding と WebHttpBehavior が自動的にセットアップされることがわかりました。

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

名前空間は、Web 上の他の場所で言及されているもの (この MSDN 記事など) とは少し異なることに注意してください。

これを行った後、web.config からセクション全体を削除することができましたが、すべてが機能していました!

于 2008-09-26T14:54:16.273 に答える
2

エンドポイントで webHttpBinding を使用していることを確認します (httpBinding または wsHttpBinding ではありません)。これが私のエンドポイント設定です...

    <endpoint address="" binding="webHttpBinding" bindingConfiguration=""
      contract="WcfCore.ICustomer">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>
于 2008-09-26T14:44:54.113 に答える
1

サービスホストのアドレスがあることを確認する必要があります。

<services>
      <service name="SomeLib.SomeService">
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8080/somebase"/>
          </baseAddresses>
        </host>
<!-- And one EndPoint **basicHttpBinding** WILL WORK !!! -->

        <endpoint 
                   address="basic"
                   binding="basicHttpBinding"
                   contract="SomeLib.SomeContract"/>
</service>
</services>

したがって、たとえば、コンソールアプリを介してセルフホスティングしている場合は、次の方法でホストを呼び出すことができます。

WebChannelFactory<IServiceContract> factory =
        new WebChannelFactory<IServiceContract>(
            new Uri("http://localhost:8080/somebase"));

コンソール アプリが起動すると、アドレスが自己ホストされていても参照可能になり、Webget URI テンプレートに基づいてアクションを呼び出すことができるはずです。

この最小構成により、セルフホスティングを介して WCF RestFULLY を呼び出すことができます。IIS でホストしている場合は、svc ファイルがカスタム ホストを置き換えることを除いて、基本的に同じように機能します。

于 2008-09-26T15:00:11.907 に答える