Azure APIm lässt HTTPS nicht auf mehr als einer API zu

Azure APIm lässt HTTPS nicht auf mehr als einer API zu

Wir haben in Azure eine API mit 2 APIs eingerichtet. Einer ist ein SOAP-Dienst, der aus einer WSDL erstellt wurde. Er verfügt über einen einzelnen POST-Vorgang, der mit HTTPS problemlos funktioniert. Da wir in die Cloud migrieren und die Migration für Clients weitgehend transparent halten möchten, verfügt er auch über einen GET-Vorgang, um die WSDL für Clients verfügbar zu machen. Dies wurde mithilfe der hier aufgeführten Anweisungen eingerichtet:https://mbraekman.github.io/2020/05/24/Expose-WSDL-through-APIM/und funktioniert einwandfrei mit dem/soapAction=wsdlim GET-Vorgang.

Um jedoch keine Änderungen an den Clients vorzunehmen, müssen wir die alternative Methode verwenden, bei der die URL bei/meinserver/api?wsdlanstatt die/?soapAction=wsdlParameter.

Daraus ergibt sich folgendes Setup:

SOAP API hat die folgende Konfiguration:

Für die WSDL-API:

  • Anzeigename:API für WSDLs

  • WebService-URL: https://my-apim.dev.azure.net/

  • URL-Schema:HTTP(S)

  • API-URL-Suffix:Keine (wie sie in den Operationen definiert werden)

  • Operationen:

    • ERHALTEN/SubmitService/Submit.svc?singleWsdl
    • ERHALTEN/SubmitService/Submit.svc?wsdl

Das Problem ist, dass beim Besuch der HTTPShttps://my-apim.azure-api.net/SubmitService/Submit.svc?singleWsdloder ?wsdl, wird ein 404-Fehler zurückgegeben. Beim Wechsel zur HTTP-Version wird jedoch wie erwartet das WSDL zurückgegeben.

Wenn ich das URL-Schema für die WSDL-API auf „HTTPS“ ändere und die URL https:// eintippe, kommt eine 404-Antwort. Wenn ich http:// versuche, kommt immer noch eine 404-Antwort. Das einzige, was funktioniert, ist, ein URL-Schema von „HTTP“ oder „HTTP(S)“ zu verwenden und die URL http:// einzugeben. Ich weiß, dass das technisch funktioniert, aber die aktuelle URL verwendet https:// und das wollen wir auch so beibehalten.

Ich vermute, dass es zu einer Art Kollision zwischen den beiden APIs und HTTPs kommt. Übersehe ich hier etwas?

Ich möchte die 2 APIs haben, beide mit HTTPs

EDIT: Ich habe noch ein paar Experimente gemacht, indem ich die WebService-URL bearbeitet habe, einschließlich (wie Sie in der SOAP-API sehen können) der vollständigen URL in derWebService-URLEigenschaft sowie die Änderung der URLs/Suffixe, so dass eine davonhttps://my-apim.dev.azure.net/SubmitServiceund das andere isthttps://my-apim.dev.azure.net/SubmitService/Submit.svc

Wasfunktioniertbenennt die beiden wie folgt um:

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

Und

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

mit den jeweiligen Suffixen

Dies ist jedoch nicht ideal, da es sich jetzt um eine separate API/URL für Clients handelt, was bei der aktuellen vor Ort gehosteten Lösung nicht der Fall ist.

verwandte Informationen