Azure APIm 不允許在多個 API 上使用 HTTPS

Azure APIm 不允許在多個 API 上使用 HTTPS

我們在 Azure 中設定了一個具有 2 個 API 的 APIm。一種是從 WSDL 建立的 SOAP 服務。它有一個 POST 操作,使用 HTTPS 運行得很好。由於我們正在遷移到雲端並希望保持遷移對客戶端基本透明,因此它還具有用於向客戶端公開 WSDL 的 GET 操作。這是使用此處找到的說明建立的:https://mbraekman.github.io/2020/05/24/Expose-WSDL-through-APIM/並且使用效果很好/soapAction=wsdl在 GET 操作中。

然而,以不改變客戶端上的內容為名,我們需要使用替代方法,將 URL 保留為/myserver/api?wsdl而不必包括/?soapAction=wsdl範圍。

這將導致以下設定:

SOAP API 具有以下配置:

對於 WSDL API:

  • 顯示名稱:WSDL 的 API

  • 網路服務網址: https://my-apim.dev.azure.net/

  • 網址方案:HTTP(S)

  • API URL 後綴:無(因為它們在操作中定義)

  • 營運:

    • 得到/SubmitService/Submit.svc?singleWsdl
    • 得到/SubmitService/Submit.svc?wsdl

問題是,當訪問HTTPS時https://my-apim.azure-api.net/SubmitService/Submit.svc?singleWsdl或 ?wsdl,回傳 404 not-found 錯誤。但是,前往 HTTP 版本,WSDL 將按預期返回。

如果我將WSDL API 的URL 方案更改為“HTTPS”,並點擊https:// url,則為404,如果我嘗試http:// ,則仍然為404。方案」或「HTTP(S)」並點選 http:// url。我知道這在技術上是可行的,但目前的 URL 使用 https://,我們希望保持這種方式。

我懷疑 2 個 API 和 HTTP 之間存在某種衝突,我在這裡遺漏了什麼嗎?

我想要 2 個 API,都使用 HTTP

編輯:我透過編輯 WebService URL 做了一些更多的實驗,包括(如您在 SOAP API 中看到的)將完整的 URL 包含在網路服務網址屬性以及更改 URL/後綴,以便其中之一是https://my-apim.dev.azure.net/SubmitService另一個是https://my-apim.dev.azure.net/SubmitService/Submit.svc

什麼確實有效正在重命名兩者,如下所示:

https://my-apim.dev.azure.net/SubmitService/

https://my-apim.dev.azure.net/SubmitService2/

以及各自的後綴

但這並不理想,因為它現在是客戶端的單獨 API/URL,而目前的本機託管解決方案卻不是。

相關內容