Azure クラウド サービスの Web ロール内に WCF Web サービスを作成しました。クラウド サービスをクラウド上にデプロイし、クライアント アプリケーションからサービスを呼び出すことで、実装の完全性を確認しました。しかし、WCF Web サービスをホストする Web ロールの web.config を調べたところ、Web サービスへの参照が見つかりませんでした。Web サービスに関連する構成はどこにありますか? 明らかに、Web ロール内でホストされる Web サービスは HTTP バインディングを使用します。サービスのバインディングを変更して、すべての通信に JSON を使用する必要があります。これを達成する方法を教えてください。
質問する
783 次
1 に答える
1
おそらく、basicHttpBinding を使用しているでしょう。これは、HTTP の WCF の既定値です。web.config でサービスへの参照が表示されない理由は、.NET Framework 4.0 で導入された単純化された構成のためです。必要に応じて、以前のバージョンで必要だったように、web.config でサービスを明示的に構成することもできますが、必須ではありません。
あなたが求めていることを行うには、次のことを行う必要があります。
basicHttpBinding の代わりに webHttpBinding を使用するように protocolMapping を変更します。
webHttp エンドポイントの動作を追加し、DefaultOutgoingResponseFormat を "Json" に設定します。
.svc マークアップ ファイルを変更して Factory 属性を含め、WebServiceHostFactory を指定します。例えば:
Factory="System.ServiceModel.Activation.WebServiceHostFactory"
最後に、サービス コントラクトのメソッドに [WebGet] 属性を追加します。
于 2013-08-21T14:48:50.993 に答える