Azure APIm не разрешает HTTPS для более чем одного API

Мы настроили APIm в Azure с двумя API. Один из них — это служба SOAP, созданная на основе WSDL. Он имеет одну операцию POST, которая отлично работает с использованием HTTPS. Поскольку мы мигрируем в облако и хотим, чтобы миграция была максимально прозрачной для клиентов, в нем также есть операция GET для предоставления клиентам WSDL. Это было установлено с использованием инструкций, найденных здесь: https://mbraekman.github.io/2020/05/24/Expose-WSDL-through-APIM/ , и отлично работает с использованием /soapAction=wsdl в операции GET.

Однако, чтобы ничего не менять на клиентах, нам нужно использовать альтернативный метод, который сохраняет URL-адрес в /myserver/api?wsdl вместо включения параметра /?soapAction=wsdl .

В результате получается следующая установка:

SOAP API имеет следующую конфигурацию:

  • Отображаемое имя: Отправить сервис SOAP

  • URL-адрес веб-службы:

  • Схема URL: HTTPS

  • Суффикс URL-адреса API: SubmitService/Submit.svc

  • Операции:

    • POST /?soapAction={любой}
    • ПОЛУЧИТЬ /?soapAction=wsdl

Для API WSDL:

  • Отображаемое имя: API для WSDL

  • URL-адрес веб-службы: https://my-apim.dev.azure.net/ .

  • Схема URL: HTTP(S)

  • Суффикс URL-адреса API: нет (так как они определяются в операциях).

  • Операции:

    • GET /SubmitService/Submit.svc?singleWsdl
    • ПОЛУЧИТЬ /SubmitService/Submit.svc?wsdl

Проблема в том, что при посещении HTTPS https://my-apim.azure-api.net/SubmitService/Submit.svc?singleWsdl или ?wsdl возвращается ошибка 404 не найдена. Однако при переходе к версии HTTP WSDL возвращается, как и ожидалось.

Если я изменю схему URL-адреса на «HTTPS» для WSDL API и нажму URL-адрес https://, это будет 404, если я попробую http://, все равно 404. Единственное, что работает, - это использование схемы URL-адреса «HTTP». " или "HTTP(S)" и перейдя по URL-адресу http://. Я знаю, что технически это работает, но текущий URL-адрес использует https://, и мы хотим оставить его таким.

Я подозреваю, что между двумя API и HTTP существует какое-то столкновение. Есть ли что-то, что мне здесь не хватает?

Я хочу иметь два API, оба использующие HTTP.

РЕДАКТИРОВАТЬ: я провел еще несколько экспериментов, отредактировав URL-адрес веб-службы, включая (как вы можете видеть в SOAP API) включение полного URL-адреса в свойство 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/Submit.svc .

Что работает , так это переименовать их так:

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

и

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

с соответствующими суффиксами

Но это не идеально, поскольку теперь это отдельный API/URL-адрес для клиентов, тогда как в текущем локальном решении его нет.

0 ответов

Другие вопросы по тегам