WCF Web服务被中止
本文关键字:服务 Web WCF | 更新日期: 2023-09-27 18:17:04
我有以下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 ..它被击中两次....??....web服务代码似乎执行正确。但是浏览器中的状态被中止了?
找到解决方案.....似乎WCF不允许DateTime
空值…我有没有赋值的public DateTime SortDateTime { get; set; }
.
修改了模型类的构造函数来初始化它:
public class InputObject
{
public InputObject ()
{
SortDateTime = DateTime.Now;
}
//Fields
public DateTime SortDateTime { get; set; }
}
我有同样的问题,因为我从服务器返回了大量的记录,我将以下行添加到我的wcf配置文件中,它工作了。
<system.web>
<httpRuntime maxRequestLength ="262144" executionTimeout="103600"/>
</system.web>
希望它也适用于你。请试一试。
序列化时Javascript对象表示法存在问题或错误;
"•JavaScript日期基于一个时间值,从1970 UTC时间1月1日午夜开始以毫秒为单位。一天有8640万毫秒。JavaScript Date对象的范围是-100,000,000天到100,000,000天(相对于UTC时间1970年1月1日)。"
DateTime with value Year=1, Month=1, and Day =1 ..31抛出异常。其中Year = 1..yyyy, Month = 2..嗯,一天= 1 . .DD等等都可以。("MyDateTime":"/日期(-62132950800000 + 0000)/")
我对'DateTime'做了大量的测试,但问题在限制范围内。
作为DateTime是一个ValueType然后空值不允许,但Nullable<DateTime>
也工作得很好。("MyDateTime":null)
我今天遇到了同样的问题。