私も WCF を学んでおり、Web サービスは初めてで、非常に基本的な質問があります。私を甘やかしてください!私が使用している本の例 (Learning WCF) では、サービスのベース アドレス (new Uri("http://localhost:8000/HelloIndigo)) を指定する ServiceHost インスタンスを作成しました。サービスを実装するライブラリ. 次に、AddServiceEndpoint() の呼び出しが最後の引数である「HelloIndigoService」として指定された相対アドレスで行われます. 後者は、実際にサービス コントラクトを実装していますか? (問題のクラスにはその名前が付けられています。) しかし、その引数は「アドレス」と呼ばれており、非常に混乱しています。助けてください。
6315 次
1 に答える
3
セルフホスティングの場合は、次のいずれかを使用できます。
エンドポイント内の完全で明示的なエンドポイント アドレス。
http://yourServer:8888/YourService/SomeMethodName
したがって、エンドポイントは完全な HTTP アドレスを定義します
また:
- そのサービスのすべてのエンドポイントのベースとなるサービスのベース アドレスを定義すると、エンドポイント自体はそこからの相対アドレスのみを定義できます。
したがって、あなたの場合、ベースアドレスはhttp://localhost:8000/HelloIndigo
- すべてのサービスエンドポイントがそのアドレスの「下」になります。
エンドポイントは の相対アドレスを定義するHelloIndigoService
ため、これら 2 つを組み合わせると、最終的な完全なアドレスは次のようになります。
http://localhost:8000/HelloIndigo/HelloIndigoService
これは、自己ホスティングServiceHost
でのみ機能します (クラスを作成して使用するために開くホスト アプリケーションがある場合)。
IIS を使用してサービスをホストする場合、ベース アドレスは使用されず、解釈されません。代わりに、*.svc
ファイルが存在する仮想ディレクトリ (IIS 内) がサービス エンドポイントのアドレスを定義します。
于 2011-12-07T05:50:15.267 に答える