2011-01-17 11 views
3

WCFサービスでは、デフォルトのMexバインディングを削除して、デフォルトのサービス動作のhttpGetEnabled属性をfalseに設定しました。httpGetEnabledとMexバインディングを理解する

私の理解では、このサービスはWSDLのダウンロードを許可しないということです。しかし、サービスの既存のクライアントは問題なく動作します。

今、Internet Explorerで.svcを参照すると、.svcファイルの構造を見るのに役立つ3つのことが表示されます。

  1. サービスの動作を作成します。
  2. serviceMetadata要素で、httpGetEnabled属性を作成し、trueに設定します。
  3. mexバインディングエンドポイントを作成します。すなわち

<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />

は今、私は私の質問に来てみましょう。

httpGetEnabled = "true"にすると、WSDLをダウンロードできます。 mexエンドポイントの重要性はここでわかりません。

mexエンドポイントの本当の意味は何ですか? httpGetEnabledでWSDLをダウンロードするオプションが与えられた場合、mexエンドポイントを作成する必要はありますか?

答えて

4

Mexエンドポイントは、WSDLの代わりにWS-MetadataExchangeを使用してサービスメタデータを取得する場合にのみ重要になります。どちらか一方、または両方を有効にすることができます。

AFAIK、svcutil.exeはWSDLまたはmexのどちらでも使用できますので、あまり心配はありません。あなたはどちらか一方しかサポートしていないクライアントを持つかもしれません。

関連する問題