我正在编写一个应用程序的一部分,该应用程序允许拖放文件,并通过ajax上传到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服务限制可以发送和不发送的内容?
答案 0 :(得分:1)
您是否尝试过将配置的这些属性设置为一些重要值? maxBufferPoolSize, maxReceivedMessageSize, MAXBUFFERSIZE