我从Ajax调用.NET WCF服务,如下所示:
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 :(得分:1)
我认为默认情况下WCF接受同步调用。如果要使其异步,则需要确保选中“高级”选项卡下的“生成异步操作”。 (在添加服务参考时)。默认情况下,此复选框始终未选中。