0

私の問題は、これと密接に関連しています:非標準ポートから .NET Web サービスを使用するにはどうすればよいですか? . 私の Web サービスはポート転送ファイアウォールの背後で実行されているため、WSDL ドキュメントで報告されたポート番号には、内部の大きな番号のポートが含まれています。WSDL ドキュメントを書き換えることができる SoapExtensionReflector クラスを作成しました。そのため、example.com/path/loginservice?wsdl のようなリクエストは正しく処理されます。

ただし、これは「disco」リクエストを処理しません: example.com/path/loginservice?disco. これは、次のような XML ドキュメントを返します。

<discovery>
  <contractRef ref="http://example.com:10092/loginservice.asmx?wsdl" docRef="http://example.com:10092/loginservice.asmx"/>
  <soap address="http://example.com/path/loginservice.asmx" binding="q1:LoginServiceSoap"/>
  <soap address="http://example.com/path/loginservice.asmx" binding="q2:LoginServiceSoap12"/>
</discovery>

SOAP バインディングは SoapExtensionReflector によって適切に書き直されていますが、contractRef および docRef URL には大きな番号のポートがあります。どうすればそれらも書き直すことができますか?

4

1 に答える 1

1

最後に何かを考え出した。すべてを WCF に移行した後、svcutil を使用して手動でプロキシ クラスを作成しました。おそらく古いasp.net Webサービスに付属のwsdlツールを使用して同じことができると思いますが、試したことはありません。

于 2011-01-25T23:19:28.283 に答える