18

複数のサーバーで使用できる SOAP Web サービスがあるため、複数のエンドポイントがあります。API はまったく同じであるため、このサービスと対話するためだけに異なる名前の複数のサービス参照 (C# SOAP ポート クライアント) を追加することは避けたいと考えています。

実行時にエンドポイント URI を構成する方法はありますか?

4

2 に答える 2

25

私はうまく機能する以下を使用します:

        ServiceReference1.wsSoapClient ws= new ServiceReference1.wsSoapClient();
        ws.Endpoint.Address = new System.ServiceModel.EndpointAddress("http://xxx/myservice.asmx");
于 2012-01-20T12:52:43.207 に答える
5

これも探すのに苦労しました。最後に、構成バインディングを借りて、これを行いました。

private static wsXXXX.IwsXXXXClient wsXXXXClientByServer(string sServer)
{
    // strangely, these two are equivalent
    WSHttpBinding binding = new WSHttpBinding("WSHttpBinding_IwsXXXX");
    // WSHttpBinding binding = new WSHttpBinding(SecurityMode.Message, false);

    EndpointAddress remoteAddress = new EndpointAddress(new Uri(string.Format("http://{0}:8732/wsXXXX/", sServer)), new UpnEndpointIdentity("PagingService@rl.gov"));

    return new wsXXXX.IwsXXXXClient(binding, remoteAddress);
}
于 2010-09-16T12:59:54.117 に答える