1

私は Web サービスを使用して C# でいくつかのコードを実装する作業を行っていますが、私の唯一の参照は、負荷テストに使用された Java コードです。

Java は、これを呼び出して呼び出しているオブジェクトを取得します。

lotService=(LotService) ic.lookup("mes-webservices/lotService/remote");

ここで、IC は InitialContext オブジェクトです。

C#でこれと同じ呼び出しを行う必要がありますが、方法がわかりません。このJavaメソッドのようにC#でそれを行う簡単な方法はありますか?

4

3 に答える 3

2

Web サービスへのサービス参照を追加することで、C# でも同様のことができます。Web サービスと消費クライアントの両方が .NET にあると仮定します。

疑似コードは

LocationWebService objService = new LocationWebService(); // this is proxy class of web service created when you add web reference
string result = objService.GetLocationName(4); //call web method
于 2013-03-22T21:00:15.687 に答える
1

手順は次のとおりです。

  1. プロジェクトにサービス リファレンスを追加する
  2. ServiceClient インスタンスを作成する
  3. 上記で作成したインスタンス呼び出しメソッドを使用することにより、公開しています

それだ。

于 2013-03-22T21:04:34.410 に答える
-1

最初にプロジェクトを右クリックし、[サービス参照の追加] を選択します。

取得したら、サービス クライアント オブジェクトを作成する必要があります。上記でサービス参照に名前を付けたものは何でも、プロジェクトで使用できる新しいタイプを使用できます (サービス参照名の末尾に「クライアント」が追加された名前になっていると思います。例: サービスが FooService の場合、 FooServiceClient というクライアント タイプが利用可能です。)

インスタンス化するには、バインディングが必要です。プログラムで作成できます。

var binding = new BasicHttpBinding()
            {
                CloseTimeout = new TimeSpan(0, 1, 0),
                OpenTimeout = new TimeSpan(0, 1, 0),
                ReceiveTimeout = new TimeSpan(0, 10, 0),
                SendTimeout = new TimeSpan(0, 1, 0),
                AllowCookies = false,
                BypassProxyOnLocal = false,
                HostNameComparisonMode = HostNameComparisonMode.StrongWildcard,
                MaxBufferSize = 65536,
                MaxBufferPoolSize = 524288,
                MaxReceivedMessageSize = 65536,
                MessageEncoding = WSMessageEncoding.Text,
                TextEncoding = Encoding.UTF8,
                TransferMode = TransferMode.Buffered,
                UseDefaultWebProxy = true
            };
            binding.ReaderQuotas.MaxDepth = 32;
            binding.ReaderQuotas.MaxStringContentLength = 8192;

if (isHttps)
    binding.Security = new BasicHttpSecurity() { Mode = BasicHttpSecurityMode.Transport };

次に、エンドポイントが必要です。次のように作成します。

var endpoint = new EndpointAddress(serviceUri);

次に、サービス クライアントをインスタンス化します。

var serviceClient = new FooServiceClient(binding, endpoint);

サービス クライアント インスタンスからサービス メソッドを呼び出すことができます。

于 2013-03-22T21:17:28.877 に答える