1

wcf を初めて使用するので、構成ファイルにエンドポイント アドレスを書き込むことがよくありました。時々、サービスが実行されるホスト側のエンドポイントにどのアドレスを書き込むべきか理解できませんでした。エンドポイント エントリの例を次に示します。ご覧ください。

<endpoint address="net.tcp://localhost/ServiceModelSamples/Service1.svc" 
          binding="netTcpBinding" 
          contract="ServiceReference1.IService1">
</endpoint>

<endpoint address="net.tcp://localhost/ServiceModelSamples/service"
          binding="netTcpBinding"
          contract="ServiceReference1.IService1" />

エンドポイント アドレスについていくつか質問があります 1) このようにエンドポイント アドレスを記述する必要がある場合

net.tcp://localhost/ServiceModelSamples/Service1.svc

IIS でサービスをホストする場合、svc ファイル名を書き込む必要がある上記のようなエンドポイント アドレスを書き込む必要があると思います。私は正しいですか?

2) 以下のアドレスを参照してください。

address="net.tcp://localhost/ServiceModelSamples/Service1.svc" 

ServiceModelSamplesとは何ですか?

3) wcf サービス アプリケーション テンプレートを使用して wcf サービスを開発し、そのサービスを win フォーム アプリでホストすると仮定すると、エンドポイント アドレスは次のようになります。

 address="net.tcp://localhost/ServiceModelSamples/service"

プロジェクト名フォルダーにServiceModelSamplesを書き込む必要がありますか、それとも次のようにアドレスから削除できますかaddress="net.tcp://localhost/service"

ServiceModelSamplesのようなプロジェクト フォルダー名を記述する必要があることを知っておくことは非常に重要です。

4) Win フォーム アプリで wcf サービスをホストする場合、svc ファイル名に拡張子を指定する必要がありますか。

5) Win フォーム アプリでサービスをホストするときに、どのアドレスを書く必要があるかを具体的に教えてください。

上記の質問はすべて非常にばかげているように聞こえるかもしれませんが、エンドポイントのアドレスについて本当に混乱しています。ここに質問する方法はありません。ですから、私の5つのポイントを見て、私を導いてください。ありがとう

4

1 に答える 1

1

あなたの混乱は、IIS ホスティングとカスタム ホスティングの違いによるものだと思います。

IIS を使用してサービスをホストすると、サービスは次のように動作します。

  • ベース アドレスは、IIS でサービスがホストされている場所に応じて、サービスに自動的に割り当てられます。Web サイトが使用するのと同じアドレス マッピングを使用します。
  • サービス層には、IIS を介してサービス インスタンスを公開するための .svc ファイルが必要です。これらのサービス ファイルは、IIS で公開するのに役立つ単なるマッピング ファイルです。

したがって、クライアントから IIS でホストされているサービスにアドレスを入力するには、次のことを行う必要があります。

  • IIS によって割り当てられたアドレスを見つけます。
  • そのアドレスに、ポイントする Service.svc ファイル名を入力します。

ただし、(ServiceHost を介して) カスタム ホスティングを使用する場合、サービス アドレスはサービス構成ファイルによって完全に管理されます。

  • このサービスは、baseAddresses 設定を介して、すべてのエンドポイントにベース アドレスを構成できます。
  • すべてのエンドポイントは、完全なアドレスまたは相対アドレスを持つことができます。相対アドレスが使用される場合、結果のエンドポイント アドレスは baseAddress + endpoints相対アドレスになります。

カスタム ホスティングでは、サービス アドレスを完全に制御できるため、IIS で従わなければならない制約はありません。

于 2013-01-07T08:46:26.993 に答える