
Hemos configurado una APIm en Azure con 2 APis. Uno es un servicio SOAP que se creó a partir de un WSDL. Tiene una única operación POST que funciona bien usando HTTPS. Dado que estamos migrando a la nube y queremos mantener la migración en su mayor parte transparente para los clientes, también tiene una operación GET para exponer el WSDL a los clientes. Esto se estableció usando las instrucciones que se encuentran aquí:https://mbraekman.github.io/2020/05/24/Expose-WSDL-through-APIM/y funciona bien usando el/soapAction=wsdlen la operación OBTENER.
Sin embargo, para no cambiar cosas en los clientes, necesitamos usar el método alternativo, que mantiene la URL en/miservidor/api?wsdlen lugar de tener que incluir el/?soapAction=wsdlparámetro.
Esto da como resultado la siguiente configuración:
La API SOAP tiene la siguiente configuración:
Nombre para mostrar:Enviar servicio SOAP
URL del servicio web: https://my-apim.dev.azure.net/SubmitService/Submit.svc
Esquema de URL:HTTPS
Sufijo de URL de API:EnviarServicio/Enviar.svc
Operaciones:
- CORREO/?soapAction={cualquiera}
- CONSEGUIR/?soapAction=wsdl
Para la API WSDL:
Nombre para mostrar:API para WSDL
URL del servicio web: https://my-apim.dev.azure.net/
Esquema de URL:HTTP(S)
Sufijo de URL de API:Ninguno (tal como se definen en las operaciones)
Operaciones:
- CONSEGUIR/SubmitService/Submit.svc?singleWsdl
- CONSEGUIR/SubmitService/Submit.svc?wsdl
El problema es que al visitar el HTTPShttps://my-apim.azure-api.net/SubmitService/Submit.svc?singleWsdlo ?wsdl, se devuelve un error 404 no encontrado. Sin embargo, al pasar a la versión HTTP, el WSDL se devuelve como se esperaba.
Si cambio el esquema de URL a "HTTPS" para la API WSDL y presiono la URL https://, es 404, si intento http:// sigue siendo 404. Lo único que funciona es usar un esquema de URL de "HTTP " o "HTTP(S)" y pulsando la URL http://. Sé que esto funciona técnicamente, pero la URL actual usa https:// y queremos que siga así.
Sospecho que hay algún tipo de colisión entre las 2 API y HTTP, ¿hay algo que me falta aquí?
Quiero tener las 2 API, ambas usando HTTP
EDITAR: Experimenté un poco más editando la URL del servicio web, incluida (como puede ver en la API SOAP) la URL completa en elURL del servicio webpropiedad, así como cambiar las URL/sufijos para que uno de ellos seahttps://my-apim.dev.azure.net/SubmitServicey el otro eshttps://my-apim.dev.azure.net/SubmitService/Submit.svc
Quéfuncionaestá cambiando el nombre de los dos así:
https://my-apim.dev.azure.net/SubmitService/
y
https://my-apim.dev.azure.net/SubmitService2/
con los respectivos Sufijos
Pero esto no es ideal, ya que ahora es una API/URL separada para los clientes, mientras que la solución alojada local actual no lo es.