web-dev-qa-db-ja.com

WCFのWSDLとMexエンドポイントの違いは何でしたか

Mexエンドポイントについていくつか質問があります。

  1. レガシーWebサービスでは、wsdlを使用してプロキシを作成します。 WSDLは、Webサービスのメタデータを公開します。 wcfでは、メタデータを公開するmexエンドポイントという別の用語が使用されますが、wscfはwcfでまだ有効です。私はwcfが初めてで、difference between wsdl & mex endpointに関して混乱していますか?

  2. httpGetEnabled="false" or httpGetEnabled="true"の意味は何ですか?

  3. httpGetEnabled="false"を設定すると、どうなりますか?クライアントがIDEからサービス参照を追加できないことを意味しますか?ただし、httpGetEnabled="false"を設定し、クライアントがサービス参照を追加できる場合。 httpGetEnabled設定が行うことは非常にわかりにくいです。

  4. 一人の男が言った

MEXとWSDLは、潜在的なクライアントにサービスの構造を伝える2つの異なるスキームです。したがって、サービスコントラクトを(MEX)として公開するか、WSDLとして公開するかを選択できます。

上記のステートメントが真の場合、MEXを使用するタイミングとWSDL?を使用するタイミングを教えてください

  1. Mexを無効にして、WSDL経由でのみサービスを公開するにはどうすればよいですか?

  2. WSDL support all bidning like wshttp,wsdualhttp or tcp etc...可能であれば、wsdlとmexについて詳しく説明してください。

更新

あなたが言った

5. How can I disable mex and expose my service only through WSDL?

Do not specifiy a mex endpoint in your config and use httpGetEnabled.

Configにmexエンドポイントに関連するエントリがなく、httpgetenableが次のようになることを意味しようとしていますか?

<serviceMetadata httpGetEnabled="true" httpGetUrl="http://localhost:8080/SampleService?wsdl"/>

あなたが言った

WSDLは通常、httpまたはhttps getを通じて公開されますが、これは実際には構成できないURLです(たとえば、セキュリティの制限や下位互換性のため)。 MEXエンドポイントは、構成可能なエンドポイント上でメタデータを公開し、TCPまたはHTTP)などのさまざまな種類のトランスポートとさまざまな種類のセキュリティメカニズムを使用できます。

Mexは構成可能ですが、wsdlは構成可能ではないということです。 mex is configurableはどういう意味ですか?構成mexのサポートの種類と構成方法について説明してください。

httpGetEnabled="false" then the WSDLを設定すると、生成できなくなりますか?

35
Thomas

1)レガシーWebサービスでは、wsdlを使用してプロキシを作成します。 WSDLはWebサービスのメタデータを公開します。 wcfでは、メタデータも公開するmexエンドポイントがありますが、wsdlはまだwcf.iでライブですwcfでは新しいので、wsdlとmexエンドポイントの違いは混乱していますか?

まったく同じことですが、mexは非HTTPプロトコルをサポートし、高度な構成/セキュリティシナリオ向けに設計されています。 WSDLは従来の方法であり、MEXはWCFを備えた新しい改良バージョンです。

2)httpGetEnabled = "false"またはhttpGetEnabled = "true"の意味は何ですか

サービスのmexエンドポイントを定義していない場合でも、defautl URLを介してwsdlを介してメタデータを公開します。

3)httpGetEnabled = "false"を設定すると、どうなりますか?クライアントがIDEからサービス参照を追加できないことを意味しますか?しかし、httpGetEnabled = "false"を設定すると、クライアントがサービス参照を追加できることがわかりました。だから、httpGetEnabledがfalseまたはtrueであるということは私にとって非常に混乱していますか?

クライアントは、httpGetEnabled/httpsGetEnabledが有効な場合、またはサービスの構成でmexエンドポイントを定義している場合にのみ、VSに参照を追加できます。ベストプラクティスは、開発環境ではメタデータを公開し、運用環境では公開しないことです。別のアセンブリを介してサービス契約を配布し、ChannelFactoryを使用することもできます。

4)1人の男が言いました:-MEXとWSDLは、潜在的なクライアントにサービスの構造を伝えるための2つの異なるスキームです。したがって、サービスコントラクトを(MEX)として公開するか、WSDLとして公開するかを選択できます。上記のステートメントが真の場合、MEXを使用するタイミングとWSDLを使用するタイミングを教えてください。

WSDLは通常、httpまたはhttps getを通じて公開されますが、これは実際には構成できないURLです(たとえば、セキュリティの制限や下位互換性のため)。 MEXエンドポイントは、構成可能なエンドポイント上でメタデータを公開し、TCPまたはHTTP)などのさまざまな種類のトランスポートとさまざまな種類のセキュリティメカニズムを使用できます。

したがって、MEXの構成はより柔軟になり、WSDLは、WSDLで動作する古いバージョンのクライアントおよび非.netクライアントとの相互運用性が高まります。

5)mexを無効にして、WSDLのみでサービスを公開する方法

構成でmexエンドポイントを指定しないで、httpGetEnabledを使用してください

6)WSDLは、wshttp、wsdualhttp、tcpなどのすべての入札をサポートします。

メタデータの公開は、サービスの呼び出しとはまったく異なります。

[〜#〜] update [〜#〜]

configにmexエンドポイント関連のエントリはなく、httpgetenableは次のようになります。

はい、mexエンドポイントとhttpGetEnabledを指定する必要はありません。メタデータを公開するのに必要なのは1つだけです。これはホスティング環境に依存するため、httpGetUrlを指定しないでください。

mexは構成可能ですが、wsdlは構成可能ではないということです。 mexが構成可能なことを意味するものは何ですか?mexサポートの構成と構成方法について説明してください。

MEXエンドポイントは、http getリクエストの代わりにSOAPメッセージを使用して、クライアントがサービスのメタデータを受信できるようにする特別なエンドポイントです。http、https、tcp、さらには名前付きパイプHttpGetEnableを使用すると、HTTP GETメソッドを介してメタデータを公開できます。通常は、サフィックス「?wsdl」が付いたサービスのアドレスです。

MEXとWSDLはどちらもほぼ同じものを出力します。

ほとんどの場合、MEXエンドポイントは不要です。通常、http getでWSDLを使用すれば十分です。

この部分を理解する意向は理解していますが、これに何度も費やさないでください。他にも複雑な機能がたくさんあります。

56
Cybermaxs

MEXエンドポイントは、クライアントがhttp getリクエスト(つまり、httpGetEnabled = "true")の代わりにSOAPメッセージ)を使用してサービスのメタデータを受信できるようにする特別なエンドポイントです。アクセス可能なMEXエンドポイントを作成できますhttp、https、tcp、さらには名前付きパイプを通して。

MEXエンドポイントのGetMetadata操作を呼び出すときに受け取る応答には、WSDLのコンテンツとそれにリンクされているすべてのXSDファイルが含まれます。

0
Taran