8

WCF のサービス ホストは、web.config または app.config からの構成とどのようにやり取りしますか。サービス ホストを作成するときは、サービス ホスト コンストラクターとサービスのクラスで URL のみを指定します。

しかし、app.config または web.config には、エンドポイントの別のリストがあり、それぞれに固有の URL があります。では、wcf はこの状況をどのように処理するのでしょうか? app.config または web.config から取得するエンドポイントはどれですか?

4

2 に答える 2

2

エンドポイントのアドレスは、サービス ホストのベース アドレスに対して相対的です。たとえば、次のエンドポイントがあるとします。

<service name="MyService">
    <endpoint address="" binding="ws2007HttpBinding" contract="IMyService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>

と のサービス ホスト URL のhttp://localhost:7777場合、 でサービスを公開しhttp://localhost:7777、 でメタデータを公開しますhttp://localhost:7777/mex

于 2013-04-05T07:38:07.137 に答える
1

したがって、一般的に、相互作用はいくつかの要因 (ホスティング環境、コード、Web またはアプリの設定) に依存します。

MSDN によると ( http://msdn.microsoft.com/en-us/library/ms733749.aspx ): WCF でサービスのエンドポイント アドレスを指定するには、2 つの方法があります。サービスに関連付けられた各エンドポイントに絶対アドレスを指定するか、サービスの ServiceHost にベース アドレスを指定してから、このサービスに関連付けられた各エンドポイントに、このベース アドレスに対して相対的に定義されたアドレスを指定できます。これらの各手順を使用して、構成またはコードでサービスのエンドポイント アドレスを指定できます。相対アドレスを指定しない場合、サービスはベース アドレスを使用します。

また、ホスティング環境にも注意を払う必要があります。たとえば、IIS 自体がエンドポイントのベース アドレスを生成し (構成で指定されている場合でも)、セルフホストでは構成からそれを読み取ります。

上記のリンクは、コードまたは構成でアドレスを指定する機能と、ホスト環境への依存性を大きく説明しています

于 2013-04-05T08:03:49.037 に答える