我正在写一个应用程序的一部分,它允许拖放文件,并通过ajax上传到Web服务器。jQuery AJAX文件上传到WCF Web服务上大数据失败
这里是我的jQuery代码片断文件上传到WCF Web服务:
var fileData = JSON.stringify({
filename: file.name,
contentType: file.type,
data: e.target.result
});
$.ajax({
cache: false,
url: "/site/app.svc/GetFile",
type: "POST",
dataType: "json",
data: fileData,
contentType: "application/json; charset=utf-8",
processData: false
});
这里是我的WCF Web服务代码片段获取文件数据,并将其保存:
[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest)]
public bool GetFile(string filename, string contentType, string data)
{
try
{
var tokens = data.Split(',');
File.WriteAllBytes("C:\\" + filename, System.Convert.FromBase64String(tokens[1]));
}
catch
{
return false;
}
return true;
}
这对小文件的工作原理确定,但是当我到各地甚至80KB ...它失败的消息
413请求实体太大
...和有时
500内部服务器错误
为什么当它击中一个特定的大小限制,它没有任何想法?这是ajax文章大小的限制,还是更可能是WCF服务限制可以发送和不可发送的内容?
最大的可能是413来自WCF的局限性和500是因为你的要求exceedes为ASP.NET允许的最大请求大小。所有限制都可以重新配置。 – 2013-02-14 11:26:08