Webサービスを使用する必要があります。彼らは私にWSDLファイルを送りました。 Webサイトに追加してプロキシとして使用するには、どうすればよいですか。 (仮想ディレクトリに配置した場合、検出できますが、実際のWebサービスとの接続が許可されますか?)
Visual Studioを起動し、Webプロジェクト(またはコンソールアプリ-関係ありません)を作成します。
.Net標準の場合:
エラーがない場合は、サービスにアクセスするために使用するNameSpaceを設定するだけで、自動的に生成されます。
.Net Coreの場合
上記のいずれの方法でも、使用するためのシンプルで非常に基本的な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)。
ビジュアルスタジオで。
エラーがない場合は、オブジェクトブラウザとすべての関連メソッドでサービス参照を確認できるはずです。
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サービスを消費するコード:
。Net Coreprojectにwsdl参照を追加する場合は、 「Web参照の追加」オプションはありません。
Wsdl参照を追加するには、ソリューションエクスプローラーに移動し、[参照]プロジェクト項目を右クリックして、[接続サービスの追加]オプションをクリックします。
次に、「Microsoft WCF Webサービスリファレンス」をクリックします。
URIテキストボックスにファイルパスを入力し、WSDLをインポートします。
シンプルで非常に基本的なWCFクライアントが生成され、次のように使用できます。
YourServiceClient client = new YourServiceClient();
client.DoSomething();