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 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)

我今天遇到了同样的问题。