私はWCFの初心者です。クライアント側だけでなく、サービス側でも構成ファイルにエンドポイントを記述する必要があることはわかっています。次のような複数のエンドポイントがあるとします
<services>
<service name="YourNamespace.YourService" behaviorConfiguration="Default">
<endpoint name="Default"
address="http://YourServer/Services/MyService"
binding="basicHttpBinding"
contract="YourNamespace.IYourService"/>
<endpoint name="TCP"
address="net.tcp://YourServer/ServicesTCP/MyService"
binding="netTcpBinding"
contract="YourNamespace.IYourService"/>
<endpoint name="Dual"
address="http://YourServer/Services/MyService/Dual"
binding="wsDualHttpBinding"
clientBaseAddress="http://localhost:8001/client/"
contract="YourNamespace.IYourDualService"/>
<endpoint name="mex"
address=""
binding="mexHttpBinding"
contract="IMetadataExchange"/>
</service>
</services>
次のようなエンドポイントアドレスを使用してクライアント側でプロキシを作成できないことはわかっています
http://YourServer/Services/MyService/Dual or
net.tcp://YourServer/ServicesTCP/MyService
むしろ、クライアント側でプロキシを作成する必要がある場合は、mex エンドポイント アドレスを提供する必要があります。だから私はエンドポイントアドレスの使用が何であるかを理解していませんか?
クライアント側でプロキシを作成してサービスを呼び出すと、プロキシがサービスに接続するためにどのエンドポイント アドレスを使用しているのかわかりません。
そのため、エンドポイント アドレスがどのように機能するのかを知りたいだけですか?
クライアントがサービスに接続し、tcp プロトコルが通信に使用されますが、他の http エンドポイントには 1 つの mex エンドポイントが使用されます。正常に動作します。
私の重要な質問は、basichttp、wshttp、wsdualbidning のような 3 つのエンドポイントがあると仮定すると、1 つの mex エンドポイントがそれらすべてに対して機能してプロキシを作成することを本当に知りたいということです。その場合、クライアントがサービスに接続すると、そのサービスに接続するためにどのエンドポイントアドレスが使用されるか教えてください。
誰かがこの問題について非常に詳細に、構成エントリの例とサービス コードの例を示して議論してくれれば、大きな助けになりますか?
更新された部分
Tom Redfern 氏は次のように述べています...内部使用の場合、サービス エンドポイントは必要ありません。コンソール アプリでホストされるサービスを開発し、他のクライアントがそのサービスに接続する必要があるとします。この場合、クライアントがプロキシクラスなしでサービスに接続し、さまざまなサービスメソッドを呼び出す方法を教えてください。プロキシなしで、wcf サービスのさまざまなメソッドに接続して呼び出す方法を知りたいだけです。プロキシなしで wcf サービスのさまざまなメソッドをプログラムで接続して呼び出す方法を示すためだけに、クライアント側のサンプル コードを添付してください。