質問

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

役に立ちましたか?

解決

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

Factory="System.ServiceModel.Activation.WebServiceHostFactory"

名前空間は、Webの他の場所(このMSDNの記事)。

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

他のヒント

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

    <endpoint address="" binding="webHttpBinding" bindingConfiguration=""
      contract="WcfCore.ICustomer">
      <identity>
        <dns value="localhost" />
      </identity>
    </endpoint>

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

<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"));

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top