2012-11-23 3 views
0

현재 WCF 비누 서비스를 만드는 방법을 배우고 있습니다. 나는 PHP를 통해 이것을 액세스하려고 시도하고 있지만 현재 오류가 발생하고 있습니다.PHP를 통해 WCF 비누 서비스에 액세스

다음은 WCF 비누 서비스에 액세스하는 코드입니다. 내가이 검색 좀했지만 아무것도 지금까지 나에게 의미가 이루어지지하고있다

Cannot process the message because the content type 'text/xml; charset=utf-8' was not the expected type 'application/soap+xml; charset=utf-8'. 

:

try 
{ 
    $client = new SoapClient("http://localhost:8732/Design_Time_Addresses/SoapServer/Service1/?wsdl", 
      array('soap_version'=>'SOAP_1_2', "trace" => 1, "exception" =>0)); 
    $result = $client->__soapCall("getData", array()); 

    echo "<pre>"; 
    print_r($result); 
    echo "</pre>"; 
} 
catch (Exception $e) 
{ 
    echo $e->getMessage(); 
} 

순간에 나는 현재 다음과 같은 오류를 받고 있어요. 나는 어딘가에 'soap_version'=>'SOAP_1_2'을 두는 것을 읽었지만 어떤 차이도 만들지 않았다.

WcfTestClient 소프트웨어를 사용할 때 비누 서비스가 잘 작동하므로 PHP 수행 방법에 문제가 있습니다. 다음은 UPDATE

는 응답 헤더 비누 요청 헤더 아래

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:en-GB,en;q=0.8 
Cache-Control:max-age=0 
Connection:keep-alive 
Cookie:PHPSESSID=o9iaupn13vq7p812t4bhos97p6; user=cboard 
Host:localhost 
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11 

입니다

Content-Length:142 
Content-Type:text/plain 
Date:Fri, 23 Nov 2012 21:35:55 GMT 
Server:Microsoft-IIS/7.5 
X-Powered-By:PHP/5.3.13 
X-Powered-By:ASP.NET 
+0

이걸 확인해 주시겠습니까? http://stackoverflow.com/a/5409465/630316 – Rafee

+0

고마워, 나는 이것을 보았지만 어떻게 고칠 수 있었는지에 대해서는별로 감각을 나타내지 않았다. Answer – Boardy

+0

'$ client'' SOAP 객체' – Rafee

답변

0

여기에서의 문제는 돌아 오는 응답이 오류 페이지 (텍스트/일반 있다는 것이다) 웹 서비스 응답 (응용 프로그램/xml)보다는

먼저 오류를 찾아서 수정하십시오. 또는입니다. 와이어 샤크 (또는 비슷한 것)를 사용하여 반송되는 것을 확인하십시오.

오류의 정보로 문제를 찾을 수없는 경우. Wire Shark를 다시 사용하고 PHP 클라이언트와 WCF 테스트 클라이언트의 요청을 캡처 한 다음 둘을 비교하십시오.

+0

문제가 있습니다. 로컬 컴퓨터에서 개발중인 wireshark를 사용하여 LAN 추적을 수행 할 수없고 Wireshark가 Windows에서 localhost 트래픽을 캡처 할 수 없음 – Boardy

+0

RawCap을 사용해보십시오. 로컬 호스트 트래픽을 감지 할 수 있어야합니다. –

0

여러분의 도움과 제안에 감사 드리며, 어떤 기적으로 문제가 무엇인지 알아 냈습니다.

wsHttpBinding에서 basicHttpBinding으로 바인딩을 변경해야하며 이제 PHP를 통해 액세스 할 수 있습니다.

관련 문제