回答:
WSDL.exeを使用して、生成されたファイル(.cs)をプロジェクトに含めてみてください。
Visual Studioコマンドプロンプトを起動し(スタートメニューのvisual studio / toolsの下)、次のように入力します。
>wsdl.exe [path To Your WSDL File]
これにより、コピー/移動してプロジェクトに含めるファイルが吐き出されます。そのファイルには、サービスのプロキシであるクラスが含まれています。そのクラスのインスタンスを起動します。このファイルには、オンザフライで設定できるURLプロパティと、呼び出すことができる一連のメソッドがあります。また、サービスインターフェイスを介して渡されるすべて/すべての複雑なオブジェクトのクラスを生成します。
WSDL.exeを使用しても機能しません(型が見つからないというエラーが表示されました)が、VSでプロジェクトを右クリックして[サービス参照の追加]を選択できました。[アドレス]フィールドにwsdlファイルへのパスを入力し、[移動]をクリックしました。それはすべての適切なタイプを見つけることができたようで、クラスを私のプロジェクトに直接追加しました。
.NET Framework SDKに同梱されているWSDL To Proxyクラスツールをお試しください。私はこれまで使ったことはありませんが、確かに必要なもののように見えます。
コマンドラインからプロキシを作成するためのMicrosoft DocがありますWCF
。
のローカルコピーはwsdl.exe
、次のような場所にありますC:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools
(詳細はこちら)。
最終的にCommand
は、次のようになります。
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\wsdl.exe"
/language:CS /n:"My.Namespace" https://www.example.com/service/wsdl
Webサービスの実際のバインディングURLはファイル内にあるため、ローカルマシンから次の簡単な手順を実行できます。
1)ファイルをローカルコンピュータに保存します。例:
C:\Documents and Settings\[user]\Desktop\Webservice1.asmx
2)Visual Studioでプロジェクトを右クリックし、[Web参照の追加]を選択すると、ダイアログが開きます。
3)URLボックスでC:\ Documents and Settings [user] \ Desktop \ Webservice1.asmxの上のローカルファイルの場所をコピーし、[次へ]をクリックします
4)これで、関数が表示されます。参照の名前を選択し、[参照の追加]をクリックします
5)完了です!サービスの実際のURLはファイルのBindingセクションにあるため、ローカルファイルを使用したことを心配する必要はありません。