2012-09-14 47 views
2

當我嘗試使用php-ews進行任何調用時,出現「SOAP-ERROR:解析WSDL:無法綁定到服務」。我已將Exchange實例中的services.wsdl,messages.xsd和types.xsd文件複製到本地ews/wsdl目錄中,並且該服務已明確定義,並且使用的是正確版本(ExchangeWebServices :: VERSION_2007_SP1 )。有任何想法嗎?PHP-EWS錯誤:無法綁定到服務

+0

的一件事是,每當使用WSDL關閉緩存調試SOAP。 'ini_set(「soap.wsdl_cache_enabled」,0);'你能發佈WSDL,特別是'definitions'部分嗎?錯誤信息非常清楚。 – ficuscr

+0

@ficuscr感謝關於緩存的提示,我確定它已關閉。 WSDL超過1K行,所以這裏是一個鏈接。 http://pastebin.com/aXEeL0XT – solydest

+0

嗯,任何https?也許看看SoapClient的'local_cert'參數。我的意思是對此錯誤的一般回答是:「您需要定義[WSDL]的服務元素(http://oreilly.com/catalog/webservess/chapter/ch06.html)」...我會先從在瀏覽器中查看WSDL並嘗試點擊URI。希望你會發現不是沒有解決。試過任何驗證器?對不起,我無法提供更多幫助。 – ficuscr

回答

9

由於您已從Exchange服務器下載services.wsdl,因此您必須對其進行修改。

結束標記之前(WSDL:定義)地址:

... 
    <wsdl:service name="ExchangeServices"> 
     <wsdl:port name="ExchangeServicePort" binding="tns:ExchangeServiceBinding"> 
     <soap:address location="https://path.to.your.exchange.server/EWS/Exchange.asmx" /> 
     </wsdl:port> 
    </wsdl:service> 

</wsdl:definitions> 
+2

天才。這應該是答案。 – incutonez

相關問題