2010-10-23 17 views
0

我打電話從阿賈克斯.NET WCF服務像這樣調用WCF服務:使用jQuery和參數同步

result = $.ajax({ 
    type: "POST", 
    // async: false, 
    contentType: "application/json; charset=utf-8", 
    url: BaseUrl + "Services/YucataService.svc/SetGameStatusSecure", 
    data: "{'gameID':'" + gameID + "','pid':'" + pid + "','status':'" + newStatus + "','origStatus':'" + oldStatus + "'}", 
    dataType: "json", 
    timeout: 20000 
}); 

服務器部分看起來是這樣的:

[OperationContract] 
public void SetGameStatusSecure(int gameID, int pid, string status, string origStatus) 
{ 
    ... magic stuff happens 
} 

它運作良好。

現在,我想同步調用該服務。我做的唯一改變是添加「async:false」。 呼叫以狀態500返回(=內部服務器錯誤)。

我是否必須以不同的方式配置WCF服務以允許同步呼叫?

在我切換到WCF之前,我使用了一個.asmx服務來同步調用,並且我沒有任何問題。

任何想法?

+0

是否能夠擊中後端,首先嚐試在後端有一個斷點並查看是否可以打斷點。檢查它失敗的位置 – kobe 2010-10-23 15:31:48

+0

同步調用時未觸發斷點。所以,WCF在我的代碼執行之前拒絕了這個調用。 – newtogit 2010-10-23 17:11:19

回答

1

我想默認情況下WCF接受同步調用。如果您想使其異步,則需要確保在「高級」選項卡下選中「生成異步操作」。 (在添加服務參考時)。默認情況下,此複選框始終未選中。