我試圖使用Zend_Soap_Client與ASP.net web服務進行通信。這裏是我的客戶打電話:Zend_Soap_Client錯誤調用ASP.net Web服務:「......不設置到對象的實例」
$client = new Zend_Soap_Client(null, array(
'location' => 'http://example.com/service.asmx',
'uri' => 'http://example.com/'
));
$user = new UserDetail();
$result = $client->UserDetails($user);
然而,這總是給我的錯誤:
System.NullReferenceException: Object reference not set to an instance of an object. at Service.UserDetails(UserDetail UserDetail)
一些谷歌上搜索發現,這是一個相當普遍的問題。最常見的解決方案似乎是傳遞的參數爲一個數組,所以我嘗試:
$result = $client->UserDetails(array('UserDetail' => $user));
但是這給了相同的錯誤。我也嘗試將params作爲stdClass對象進行傳遞,將數組嵌套在另一個'params'作爲鍵,以及其他一些東西,但錯誤總是相同的。
我對Web服務本身的ASP代碼,相關的方法是:
public Result UserDetails(UserDetail UserDetail) {
[some stuff]
Hashtable ht = new Hashtable();
ht = UserDetail.GenerateData();
}
的錯誤是由GenerateData()調用引起的。
我承擔的UserDetails方法空讓我的對象作爲參數,而不是,但我不知道我應該如何調用該方法,否則我這怎麼能進一步調試。我發現的大部分Zend_Soap_Client示例似乎都使用WSDL,而這個服務並不是這樣;不確定這是否相關。任何幫助感謝!
我知道ASP代碼工作作爲Web服務和使用過程中。我希望避免創建自己的.net客戶端來調試它,因爲我沒有ASP開發環境,所以我會考慮我最後的選擇! – 2010-11-15 14:46:17