
2개의 API를 사용하여 Azure에 APIm을 설정했습니다. 하나는 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 제출
웹서비스 URL: https://my-apim.dev.azure.net/SubmitService/Submit.svc
URL 구성표:HTTPS
API URL 접미사:제출서비스/Submit.svc
운영:
- 우편/?soapAction={모든}
- 얻다/?soapAction=wsdl
WSDL API의 경우:
이름 표시하기:WSDL용 API
웹서비스 URL: https://my-apim.dev.azure.net/
URL 구성표:HTTPS)
API URL 접미사:없음(작업에서 정의됨)
운영:
- 얻다/SubmitService/Submit.svc?singleWsdl
- 얻다/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의 URL 체계를 사용하는 것입니다. " 또는 "HTTP(S)"를 입력하고 http:// URL을 누르세요. 이것이 기술적으로 작동한다는 것을 알고 있지만 현재 URL은 https://를 사용하고 있으며 우리는 이를 그대로 유지하고 싶습니다.
2개의 API와 HTTP 사이에 일종의 충돌이 있는 것 같습니다. 여기서 제가 놓친 것이 있습니까?
HTTP를 사용하는 2개의 API를 갖고 싶습니다.
편집: SOAP API에서 볼 수 있듯이 전체 URL을 포함하여 WebService 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/
그리고
https://my-apim.dev.azure.net/SubmitService2/
해당 접미사를 사용하여
그러나 이는 현재 온프레미스 호스팅 솔루션이 아닌 클라이언트를 위한 별도의 API/URL이므로 이상적이지 않습니다.