2013-02-14 71 views
2

我正在写一个应用程序的一部分,它允许拖放文件,并通过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服务限制可以发送和不可发送的内容?

+0

最大的可能是413来自WCF的局限性和500是因为你的要求exceedes为ASP.NET允许的最大请求大小。所有限制都可以重新配置。 – 2013-02-14 11:26:08

回答

1

您是否尝试将您的配置的这些属性传给一些大的值? maxBufferPoolSize, maxReceivedMessageSize, MAXBUFFERSIZE

+0

是的,我们终于设法发现,我们需要在web配置中编辑这些文件以支持更大的文件。感谢/接受! :-) – series0ne 2013-02-15 18:46:10