【发布时间】:2011-11-21 23:58:20
【问题描述】:
我有一个 Web 服务将一些 Json 内容返回到我的 iPhone 应用程序,只要返回的数据量很小,它就可以正常工作,但是如果我增加返回的数据量,应用程序将无法处理它。有没有办法解决这个问题,不可能是218KB的限制......?
这是我当前的代码:
[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 服务 throw 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>
如何解决?
【问题讨论】:
-
您是否在 Web 服务中设置了断点?它会被调用吗? searchPerson 返回多少人?您可以使用 Web 浏览器向服务发出获取请求以查看返回的内容吗?你的 218k 号码是从哪里来的?
-
@DarrylBraaten 没有断点,它会被调用,100 人可以,但 150 人不行,如果我通过浏览器访问mydomain.com/persons.asmx/getData,它会返回一个包含所有人的 xml 文件(150 人没问题) , 218k 是返回的 xml 文件的大小。
-
失败是什么?服务器或客户端是否抛出错误或异常?
-
@PhilippSchmid 我猜它是服务器,因为 iPhone 应用程序和 jquery 的响应是相同的。 request: {"Message":"处理请求时出错。","StackTrace":"","ExceptionType":""}
-
您可以访问服务器吗?您是否在事件日志中看到任何可以告诉您出了什么问题的内容?或者更好的是,要么在你的服务器代码周围有一个 try/catch 块,要么附加一个调试器,让它告诉你异常是什么。一旦你知道出了什么问题,你应该能够解决问题(代码或配置)。
标签: c# json web-services asp.net-4.0