RESTful WCFの最小限の構成
-
02-07-2019 - |
質問
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ファイルがカスタムホストを置き換えることを除いて、基本的に同じように機能します。
所属していません StackOverflow