6

ディスク上にWSDLファイルがあり、Web参照としてロードされています。問題は、Web参照自体が(絶対パスを使用して)私のマシンでWSDLを探していることです。これは、チームメートのマシンでは明らかに機能しません。

Web参照に相対パスを使用してまたはResourcesファイルからWSDLを検索させることは可能ですか?WSDLは、いくつかのフィールドを追加するために変更したサードパーティサービス用です(推奨事項に従って)。

4

2 に答える 2

9

マシン上のWSDLファイルにサービス参照を追加すると、プロジェクトの「サービス参照」フォルダーにコピーされます。その時点で、サービスのAPIが決定されます。WSDLファイルの元の場所の場所を保持するために作成された「Reference.svcmap」(XML)があります。これはあなたが更新できるようにするためですAPIが変更された場合のプロジェクトのサービス参照。ただし、元のWSDLファイルがなくても、コードをチェックインして、チームは問題なく使用できます。ただし、APIが変更された場合にサービスを更新できるようにする場合は、そのWSDLファイルを公的にアクセス可能な場所で実際にホストする必要があります。通常、Webサービス自体がWSDLファイルを提供し、ファイルシステムにはありません。Webサービスを更新および変更する場合は、開発WebサーバーでホストされているWSDLに接続する必要があります。それは実際にそれが属する場所であり、ローカルファイルではありません。ただし、誰かがローカルファイル参照を更新しようとするまで、ローカルファイル参照が正常に機能しない理由はありません。Webサービスが変更されない場合は、問題はありません。変更される可能性がある場合は、どこかでホストし、実際のURLを参照してください。

Reference.svcmapファイルのXMLを微調整して相対パス参照を試行するという最初のテストは機能しませんでしたが、質問の説明どおりにこれを実際に機能させたい場合は、ここで試行してください。

于 2012-06-07T21:07:24.730 に答える
1

私の提案は、cmd行ツールwsdl.exeまたはsvcutil.exeを使用してプログラムプロキシを作成し、ソリューションに追加できる.csまたは.vbプロキシを作成することです。

これにより、wsdlファイルはまったく必要ありません。.NET 2.0の方法の詳細については、http://msdn.microsoft.com/en-us/library/7h3ystb6(v = vs.80 ).aspxを参照してください。

.NET 3.5以降およびsvcutilの場合は、http://msdn.microsoft.com/en-us/library/aa751905.aspxを参照してください。

于 2012-06-08T19:31:09.600 に答える