web-dev-qa-db-ja.com

WSDLの使用方法

Webサービスを使用する必要があります。彼らは私にWSDLファイルを送りました。 Webサイトに追加してプロキシとして使用するには、どうすればよいですか。 (仮想ディレクトリに配置した場合、検出できますが、実際のWebサービスとの接続が許可されますか?)

113
jmayor

Visual Studioを起動し、Webプロジェクト(またはコンソールアプリ-関係ありません)を作成します。

.Net標準の場合:

  1. プロジェクトを右クリックして、Addコンテキストメニューから[Add Service Reference]を選択します。
  2. [詳細]をクリックし、[サービス参照の追加]をクリックします。
  3. Wsdlの完全なファイルパスを取得し、アドレスバーに貼り付けます。次に、矢印を押します(移動ボタン)。
  4. ファイルを読み込もうとしてエラーが発生した場合、以下に示すように、ファイルが解決する必要がある壊れた未解決のURLが存在する必要があります。 enter image description here 修正方法については、この回答を参照してください: Stackoverflow answer to:Unable to create service reference for wsdl file

エラーがない場合は、サービスにアクセスするために使用するNameSpaceを設定するだけで、自動的に生成されます。

.Net Coreの場合

  1. プロジェクトを右クリックし、[コンテキストの追加]メニューから[接続されたサービス]を選択します。
  2. リストからMicrosoft WCF Webサービス参照プロバイダーを選択します。
  3. 参照ボタンを押してすぐにwsdlファイルを選択し、名前空間を設定したら、すぐに使用できます。エラーが発生した場合は、上記のエラー修正URLを参照してください。

上記のいずれの方法でも、使用するためのシンプルで非常に基本的なWCFクライアントが生成されます。生成されたコードに「YourservicenameClient」クラスがあります。

参考のために、生成されたcsファイルはObj/debug(またはrelease)/ XsdGeneratedCodeにありますが、dllはTempPEフォルダーにあります。

作成されたサービスには、WSDLコントラクトで定義された各メソッドのメソッドが必要です。

クライアントをインスタンス化し、呼び出したいメソッドを呼び出します-それだけです!

YourServiceClient client = new YourServiceClient();
client.SayHello("World!");

リモートURLを指定する必要がある場合(デフォルトで作成されたURLを使用しない)、プロキシクライアントのコンストラクターで簡単にこれを行うことができます。

YourServiceClient client = new YourServiceClient("configName", "remoteURL");

ここで、configNameは使用するエンドポイントの名前です(URL以外のすべての設定を使用します)。また、remoteURLは接続するURLを表す文字列です( config)。

126
marc_s

ビジュアルスタジオで。

  • プロジェクトを作成または開きます。
  • ソリューションエクスプローラーからプロジェクトを右クリックします。
  • [サービス参照を追加]を選択します
  • 受け取ったWSDLでアドレスを貼り付けます。
  • OKをクリックします。

エラーがない場合は、オブジェクトブラウザとすべての関連メソッドでサービス参照を確認できるはずです。

43
vidalsasoon

WSDL.EXEユーティリティ を使用して、WSDLからWebサービスプロキシを生成します。

次のようなクラスを含む長いC#ソースファイルを取得します。

/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Web.Services.WebServiceBindingAttribute(Name="MyService", Namespace="http://myservice.com/myservice")]
public partial class MyService : System.Web.Services.Protocols.SoapHttpClientProtocol {
    ...
}

クライアント側のWebサービスを消費するコード:

  1. myServiceをインスタンス化します。
  2. urlプロパティを設定します
  3. webメソッドを呼び出す
16
azheglov

。Net Coreprojectにwsdl参照を追加する場合は、 「Web参照の追加」オプションはありません。

Wsdl参照を追加するには、ソリューションエクスプローラーに移動し、[参照]プロジェクト項目を右クリックして、[接続サービスの追加]オプションをクリックします。

enter image description here

次に、「Microsoft WCF Webサービスリファレンス」をクリックします。

enter image description here

URIテキストボックスにファイルパスを入力し、WSDLをインポートします。

enter image description here

シンプルで非常に基本的なWCFクライアントが生成され、次のように使用できます。

YourServiceClient client = new YourServiceClient();
client.DoSomething();
4
Nedzad G