我創建了一個公開GetData方法的簡單wcf服務。它實際上是創建新的wcf項目時創建的模板。wcf服務內部服務器錯誤
我添加應用到IIS服務器,因此它可以從外部被訪問,這樣的:http://192.168.0.100/TFSWrapper/Service1.svc
我使用的通用肥皂客戶端發送到GetData方法的請求。這是被生成的SOAP請求:
<?xml version="1.0" encoding="utf-16"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<GetData xmlns="http://tempuri.org/" />
</soap:Body>
</soap:Envelope>
這裏是肥皂響應:
<?xml version="1.0" encoding="utf-16"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetDataResponse xmlns="http://tempuri.org/">
<GetDataResult>You entered: 87</GetDataResult>
</GetDataResponse>
</s:Body>
</s:Envelope>
順便說,我刪除從該方法的參數和硬編碼一個返回值。
正如你所看到的,一切正常,因爲它應該。
接下來,我創建了一個鈦客戶端調用相同的服務。我使用了上面的確切肥皂請求,只是爲了確保。
基本上我這樣做:
var s='<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><GetData xmlns="http://tempuri.org/" /></soap:Body></soap:Envelope>';
//xhr.send(config.envelopeBegin+body+config.envelopeEnd);
xhr.send(s);
當該被髮送,該服務器與以下故障串一起返回一個「500內部服務器錯誤」響應:
與操作該消息「http://tempuri.org/GetData」不能 處理在接收機處,由於在 EndpointDispatcher一個ContractFilter失配。這可能是因爲發件人和收件人之間的合同不匹配 (發件人和收件人之間的不匹配操作)或綁定/安全 不匹配。檢查發件人和 接收者是否具有相同的合同和相同的綁定(包括 安全要求,例如消息,傳輸,無)。
起初我使用鈦皁api創建請求xml,但我得到了同樣的錯誤。我雖然這是如何創建一個問題,所以這就是爲什麼我硬編碼的請求(工程),但仍然沒有運氣。
Hi Timo!你能提供更多的信息,以便我可以幫助回答你的問題嗎?特別是:您使用的是什麼版本的Titanium Mobile SDK?你正在測試什麼版本的iOS模擬器或Android模擬器?幾天後,我還可以打那臺測試服務器嗎?我會幫你獲得一些工作代碼,或者我會確保報告一個錯誤,以便我們能夠解決任何阻礙你進展的潛在問題。後來! –