
Azure に 2 つの API を持つ APIm をセットアップしました。1 つは WSDL から作成された SOAP サービスです。これは、HTTPS を使用して問題なく動作する単一の POST 操作を備えています。クラウドに移行しており、移行をクライアントに対してほとんど透過的に維持したいため、WSDL をクライアントに公開するための GET 操作も備えています。これは、次の手順に従って確立されました。https://mbraekman.github.io/2020/05/24/Expose-WSDL-through-APIM/そして、/soapAction=wsdlGET 操作で。
しかし、クライアント側で変更を加えないためには、URLをそのままにする別の方法を使う必要があります。/myserver/api?wsdl代わりに、/?soapAction=wsdlパラメータ。
これにより、次の設定が行われます。
SOAP API には次の構成があります。
表示名:サービスSOAPの送信
WebサービスURL: https://my-apim.dev.azure.net/SubmitService/Submit.svc
URLスキーム:翻訳
API URL サフィックス:送信サービス/送信.svc
オペレーション:
- 役職/?soapAction={任意}
- 得る/?soapAction=wsdl
WSDL APIの場合:
表示名:WSDL 用 API
WebサービスURL: 参考:
URLスキーム:HTTP(S)
API URL サフィックス:なし(操作で定義されるとおり)
オペレーション:
- 得る/SubmitService/Submit.svc?シングルWsdl
- 得る/SubmitService/Submit.svc?wsdl
問題は、HTTPSにアクセスするとhttps://my-apim.azure-api.net/SubmitService/Submit.svc?singleWsdlまたは ?wsdl の場合、404 見つかりませんエラーが返されます。ただし、HTTP バージョンに移行すると、期待どおりに WSDL が返されます。
WSDL API の URL スキームを「HTTPS」に変更し、https:// の URL にアクセスすると 404 になりますが、http:// を試しても 404 のままです。唯一機能するのは、「HTTP」または「HTTP(S)」の URL スキームを使用して http:// の URL にアクセスすることです。これは技術的には機能するとわかっていますが、現在の URL は https:// を使用しており、これをそのままにしておきたいのです。
2 つの API と HTTP の間に何らかの衝突があるのではないかと思いますが、何か見落としている点があるでしょうか?
2つのAPIを両方ともHTTPSで使用したい
編集:WebService URLの編集を通じてさらに実験を行いました。これには(SOAP APIでわかるように)完全なURLを含めることも含まれます。WebサービスURLプロパティを変更し、URL/サフィックスを変更して、そのうちの1つがhttps://my-apim.dev.azure.net/SubmitServiceそしてもう一つはhttps://my-apim.dev.azure.net/SubmitService/Submit.svc
何動作する2つの名前を次のように変更します。
https://my-apim.dev.azure.net/SubmitService/
そして
https://my-apim.dev.azure.net/SubmitService2/
それぞれの接尾辞付き
しかし、これは理想的ではありません。現在のオンプレミスでホストされるソリューションとは異なり、クライアントにとっては別の API/URL になるからです。