2013-02-14 60 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