我跟随Webservice返回JSON:
[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
public SomeResultClass AddObject(InputObject objInputObject)
{
IO objIO = new IO();
return objIO.AddObject(objInputObject);
}
客户端我正在调用webservice:
var Data=new Object();
Data.objInputObject=new Object();
//Add fields
$.ajax({
type: "POST",
data: JSON.stringify(Data),
dataType: "json",
async:false,
url: "../Webservice/WSService.svc/AddObject",
contentType: "application/json",
success: function (result) {
show_Result(result.AddObjectResult);
},
error: function (msg) {
show_Error(msg);
}
});
但是ajax调用总是被中止....如果我在webservice中添加断点..它被击中两次.... ?? .... webservice代码似乎正确执行..但状态在浏览器中止?
答案 0 :(得分:1)
找到解决方案......似乎WCF不允许DateTime
空值...
我有public DateTime SortDateTime { get; set; }
未分配任何值..
刚刚更改了模型类构造函数来初始化它:
public class InputObject
{
public InputObject ()
{
SortDateTime = DateTime.Now;
}
//Fields
public DateTime SortDateTime { get; set; }
}
答案 1 :(得分:0)
我遇到了同样的问题,因为我从服务器返回了大量记录,我将以下行添加到我的wcf配置文件中并且它有效。
<system.web>
<httpRuntime maxRequestLength ="262144" executionTimeout="103600"/>
</system.web>
希望它也适合你。请尝试。
答案 2 :(得分:0)
序列化时,问题或错误在Javascript对象表示法中;不在WCF。
DateTime,其值为Year = 1,Month = 1,Day = 1..31抛出异常。其中Year = 1..yyyy,Month = 2..MM,Day = 1..DD等工作正常。 ( “MyDateTime”: “/日期(-62132950800000 + 0000)/”)
我使用'DateTime'进行了大量测试,但问题是在限制范围内。
由于DateTime是ValueType,因此不允许使用空值,但Nullable<DateTime>
也可以正常工作。(“MyDateTime”:null)
我今天遇到了同样的问题。 (感谢Shashank Kumar)