2013-04-05 10 views
8

WCFのサービスホストは、web.configまたはapp.configの設定とどのように対話しますか。私がサービスホストを作成するとき、私はサービスホストのコンストラクタとサービスのクラスにURLを指定するだけです。app.configまたはweb.configの設定とWCFのコードの間の関係

しかし、app.configまたはweb.configには、独自の特定のURLを持つエンドポイントの別のリストがあります。だからwcfはこの状況をどのように扱いますか?どのエンドポイントがapp.configまたはweb.configから取れますか?

+0

への依存性。 「[質問には「タイトル内に「タグ」を含める必要がありますか」(http://meta.stackexchange.com/questions/19190/)」を参照してください。コンセンサスは「いいえ、そうすべきではありません」です。 –

答えて

2

エンドポイントのアドレスは、サービスホストのベースアドレスからの相対アドレスです。

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

http://localhost:7777のサービスホストのURLは、その後、あなたがhttp://localhost:7777にあなたのサービスをさらすだろう、とhttp://localhost:7777/mex上のメタデータ:たとえば、場合には、これらのエンドポイントを持っていました。

+0

私の例では2番目のエンドポイントが必要なので、無害なエンドポイントを選択しました。クライアントがWSDLのHTTP GETを実行せずに 'svcutil.exe'を使用できるようにするには、MEXエンドポイントを公開する必要があります。私は自分自身でMEXを気にしません、私はちょうど私のサービスの振る舞いで ''を持っています。 –

1

あなたの相互作用は、あなたの環境、コード、ウェブやアプリの設定など、いくつかの要因によって異なります。

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

あなたのホスティング環境にも注意する必要があります。たとえば、IIS自体がエンドポイント用のベースアドレスを生成します(configで指定されていても)。一方、自己ホストでは設定から​​読み取ります。

上記のリンクを大幅に私はあなたのタイトルを編集したコードや設定にあなたの住所をspecifingの機能について説明し、ご使用のホスト環境

関連する問題