次のようなリバース プロキシの背後にある Web サービスがあります。
Web サービスをテストするために Web 参照を追加しようとすると、wsdl ファイルをダウンロードできないと表示されます。これは、リクエストが送信されたときはhttps://uat.mywebservice.com/Service/Service.asmxですが、リバース プロキシにヒットし、wsdl ファイルと disco ファイルのダウンロードに疲れると、リンクがhttp に変更されるためです。 //myservice.comp.com/Service/Service.asmx?wsdlmyservice.comp.com
であり、リバース プロキシの単なる名前空間であるため、これは適切なリンクではありません。
何が起こっているのかというと、soap ファイルのヘッダーが、実際のホスト名ではなく、この名前空間に更新されていますuat.mywebservice.com
。fiddler disco ファイルを使用すると、アドレスが正しくないことがわかりました。wsdl.exe ツールを使用してプロキシ クラスを作成し、そのクラス内のすべての不適切なリンクを正しいホスト名に更新しました。
リバース プロキシにアクセスしたときにアドレスが正しいままであることを確認する方法はありますか。
正しくない: mywebservice.comp.com
<?xml version="1.0" encoding="utf-8" ?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="http://mvwebservice.comp.com/Service/Service.asmx?wsdl" docRef="http://mvwebservice.comp.com/Service/Service.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="http://mywebservice.comp.com/Service/Service.asmx" xmlns:q1="http://tempuri.org/" binding="q1:ServiceSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="http://mywebservice.comp.com/Service/Service.asmx" xmlns:q2="http://tempuri.org/" binding="q2:ServiceSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>
正しい: uat.mywebservice.com
<?xml version="1.0" encoding="utf-8" ?>
<discovery xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef ref="https://uat.mvwebservice.com/Service/Service.asmx?wsdl" docRef="https://uat.mvwebservice.com/Service/Service.asmx" xmlns="http://schemas.xmlsoap.org/disco/scl/" />
<soap address="https://uat.mywebservice.com/Service/Service.asmx" xmlns:q1="http://tempuri.org/" binding="q1:ServiceSoap" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
<soap address="https://uat.mywebservice.com/Service/Service.asmx" xmlns:q2="http://tempuri.org/" binding="q2:ServiceSoap12" xmlns="http://schemas.xmlsoap.org/disco/soap/" />
</discovery>