2011-11-21 62 views
1

我有一个Web服务返回一些Json的东西到我的iPhone应用程序,它工作正常,只要返回的数据量有点小,但如果我增加金额的应用程序返回的数据无法处理它。有没有办法解决这个问题,不可能是218KB的限制...?从Web服务检索大量数据时代码失败

这是我当前的代码:

[WebService(Namespace = "http://mydomain.com/webservicesfeed")] 
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
[System.ComponentModel.ToolboxItem(false)] 
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService] 

    public class feedPerson : System.Web.Services.WebService 
    { 

     [WebMethod(BufferResponse = false)] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
     public List<Person> getData() 
     { 
      List<Person> res = new List<Person>(); 
       res = searchPerson("32.8762", "13.1875"); 
      return res; 
     } 
    } 

如果我调用Web服务投掷jQuery的它也失败,所以我想这个问题是在Web服务..

这是jQuery代码我用于试用:

<script type="text/javascript"> 
    $.ajax({ 
     type: "POST", 
     contentType: "application/json; charset=utf-8;", 
     url: "http://mydomain.com/feedPerson.asmx/getData", 
     dataType: "json", 
     success: function (data, textStatus, jqXHR) { 
      alert(data.d[0]); 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      alert("Fail"); 
     } 
    }); 
    </script> 

这怎么能解决?

+0

你在你的网络服务中放置了一个断点吗?它会被叫吗? searchPerson会返回多少人?你可以通过网页浏览器获得服务请求,看看你回来了吗?你的218k号码从哪里来? –

+0

@DarrylBraaten没有断点,它被调用,100人确定,但150不是,如果我通过浏览器访问http://mydomain.com/persons.asmx/getData它返回一个包含所有人的XML文件(没有问题150人),218k是返回的xml文件的大小。 – Mikael

+0

什么是失败?服务器或客户端是否出现错误或异常? –

回答

2

捕获错误给了我下面的信息:“字符串的长度超过了maxJsonLength属性设置的值”。

然后我发现这个职位:Can I set an unlimited length for maxJsonLength in web.config?

,并通过设置在我的web.config以下:

<system.web.extensions> 
    <scripting> 
     <webServices> 
      <jsonSerialization maxJsonLength="2147483647"/> 
     </webServices> 
    </scripting> 
</system.web.extensions> 

的问题得到了解决。

相关问题