2016-12-30 4 views
1

WCF 서비스가 정상적으로 작동하지만 4 명의 고객이 문제없이이 서비스를 사용하고 있지만 더 이상이 웹 서비스를 호출 할 수 없다고 불평하는 고객이 있습니다. 지난 며칠간.오류 404 Sonic ESB에서 WCF 서비스를 호출하는 중

우리는 10 월 이후로 아무 것도 변경하지 않았으며, 그는 아무 것도 변경하지 않았다고 주장합니다.

내가 말했듯이, 나는이 서비스를 잘 사용하는 다른 고객을 가지고 있으며 SOAP UI에서 서비스를 호출 할 수도 있습니다. 우리는 심지어 AWS에 새로운 격리 된 시스템을 만들고 서비스를 호출하여 네트워크 외부의 통신을 차단하는 방화벽 문제가 아닌지 확인했습니다.

그가 스택 추적에서 볼 수있는 것처럼,이 고객은 Sonic ESB를 사용하여 서비스에 전화합니다. 나는 정말로 Sonic ESB가 어떻게 작동하는지 이해하지 못한다. 그러나 나의 추측은 그 오류가 내 서비스가 아닌 Sonic ESB에 기인한다는 것이다. 마치 응용 프로그램과 서비스 사이에 "어댑터"를 만드는 것과 같습니다.

1) (그가 나를 보내신) 내가 예를 들어, 그것이 내가 제공 한 WSDL과 일치하지 않는 것을 볼 수 있습니다 자신의 요청 XML을 보면 : :

(I 저에게이 다음과 같은 결론을 이끌어

<CreateOrderGatewayCompanyName> --> This would be just CreateOrderGateway 
    <header> --> this header seems specific to Sonic ESB, nothing to do with us 
    <user>123414714</user> 
    <idProcess>5411251</idProcess> 
    <channel>EB</channel> 
    <ip>[ip number here]</ip> 
    <sessionId>1fd5a3f4d8f4dsa5f4dsaf4dsf1da5.xyz</sessionId> 
    </header> 
    <body> 
    <idCampania>xyz</idCampania> --> This would be "CampaignId" 
    ... 
    <order> 
     ... 
     <fecha>2016-12-21</fecha> --> This would be "Date" 
     ... 
    </order> 
    </body> 
</CreateOrderGatewayCompanyName> 

그래서 난 단지 그 과정에서 그 곳을 결론을 내릴 수있다) 분명한 이유 몇 가지 이름과 값을 변경, ESB는 내 서비스를 기대하고 적절한 SOAP 요청 형식이 이상한 XML을 변환합니다.

그가 나를 보내신 예외 스택 추적을 보면

2),이 404 오류 볼 수 있습니다 여기

<?xml version="1.0" encoding="UTF-8"?> 
<exception xmlns="http://www.sonicsw.com/sonicesb/exception"> 
<message>Exception while retrieving soap envelope from response: 
&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"&gt; 
&lt;HTML&gt;&lt;HEAD&gt;&lt;TITLE&gt;Not Found&lt;/TITLE&gt; 
&lt;META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"&gt;&lt;/HEAD&gt; 
&lt;BODY&gt;&lt;h2&gt;Not Found&lt;/h2&gt; 
&lt;hr&gt;&lt;p&gt;HTTP Error 404. The requested resource is not found.&lt;/p&gt; 
&lt;/BODY&gt;&lt;/HTML&gt; 
</message> 
<class>com.sonicsw.xqimpl.invkimpl.wsif.providers.axissoap.SoapProviderInvocationException</class> 
<detail/> 
<stackTrace><![CDATA[org.xml.sax.SAXParseException: White spaces are required between publicId and systemId. 
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source) 
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source) 
... 

그리고을 것입니다, 응답이 오지 않는 한 그가 점점이 404 HTML 코드 내 서버에서 우리가 IIS 8.5를 사용하고 IIS의 404 오류 페이지가 이처럼 보이지 않기 때문에 HTML이 다르며 메시지도 다릅니다.

"404 - 파일 또는 디렉토리를 찾을 수 없습니다. 찾으려는 리소스가 제거되었거나 이름이 변경되었을 수 있습니다. "

이 Sonic ESB가 실제로 응용 프로그램의 중간에 어댑터 또는 프록시를 만드는 경우 누구에게 알 수 있습니까? 그리고 누군가가 이미 이런 오류를 경험했다면 그 원인은 무엇입니까? 저는 100 % 긍정적 인 서비스를 제공하고 있습니다.

답변

0

그것은 내 서버에 네트워크 추적 (와이어 샤크가) 내 고객의 프록시 대신

호스트의 예를 들어, 요청의 "호스트"수정 된 것으로 나타났다 밝혀 : ourdomain.com

이 요청이 IIS 서버에 도착했을 때

그래서, 바인딩은 "ourdomain.com"로 구성된 proxy.customer.com:8080 후 요청을 떨어 : 그것은

호스트처럼 수정되었습니다. 이상한 이유로 "Microsoft HTTPAPI"라는 사람이 내 고객이 응용 프로그램을 사용하고있는 404 오류 페이지로 응답을 보냈습니다.

IIS 바인딩을 변경하는 문제가 해결되었으므로 고객이 프록시가 호스트 이름을 사용하여 수행하는 작업을 조사하기를 기다리지 않으려 고합니다.

0

고객이 보낸 실제 비누 요청을 보냈습니까? 그는 실제 웹 서비스 호출을 활성화 할 수 있습니다 (가장 쉬운 방법은 관리 콘솔에서 수행하는 것입니다).

http://knowledgebase.progress.com/articles/Article/S6498

가 전송되는 정확한 비누 요청을 알고 후에는 디버깅하기 쉬울 것이다.

또한 중간에 다른 수정이 수행되었는지 확인하기 위해 테스트 할 때 서버에서 요청 추적을 사용하도록 설정하는 것이 좋습니다.

+0

안녕하세요, 카를로스, 내 대답을 보았으니 내 서버의 추적으로 호스트 이름이 변경된 것을 알 수있었습니다! 어쨌든 고마워! – Auresco82