2013-03-05 37 views
5

Đang cố gắng đọc dữ liệu từ tệp Excel vào Tập dữ liệu ADO.NET bằng cách sử dụng mã bên dưới. Trong một cửa sổ Ứng dụng biểu mẫu nó hoạt động, nhưng trong một ứng dụng asp.net nó không thành công.Chi tiết ngoại lệ: System.Web.HttpException: Thời lượng yêu cầu tối đa vượt quá

public static DataTable ArchiveData(string fileName) 
{ 
    FileStream stream = File.Open(fileName, FileMode.Open, FileAccess.Read); 

    //Reading from a OpenXml Excel file (2007 format; *.xlsx) 
    IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 
    excelReader.IsFirstRowAsColumnNames = true; 

    DataSet result = excelReader.AsDataSet(); 

    //Free resources (IExcelDataReader is IDisposable) 
    excelReader.Close(); 
    return result.Tables["Archive data"]; 
} 

Stack Trace:

[HttpException (0x80004005): Maximum request length exceeded.] 
    System.Web.HttpRequest.GetEntireRawContent() +8793522 
    System.Web.HttpRequest.GetMultipartContent() +62 
    System.Web.HttpRequest.FillInFormCollection() +236 
    System.Web.HttpRequest.get_Form() +68 
    System.Web.HttpRequest.get_HasForm() +8745879 
    System.Web.UI.Page.GetCollectionBasedOnMethod(Boolean dontReturnNull) +97 
    System.Web.UI.Page.DeterminePostBackMode() +63 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +133 

HOẶC là có một cách tốt hơn để đọc một file Excel từ một máy client vào một DataTable ADO.NET trong ASP.NET

Trả lời

26

Add sau thẻ trong tệp web.config của bạn và kiểm tra xem tệp có hoạt động hay không

<httpRuntime maxRequestLength="350000" enableVersionHeader="false" maxQueryStringLength="3584" executionTimeout="600"/> 
+3

dưới Abacus

+1

Số bằng KB. Không sử dụng các giá trị lớn nếu bạn đang mong đợi các cuộc tấn công DoS .. – Faiz

Các vấn đề liên quan