2011-06-22 40 views
13

Tôi có một trang trên trang ASP.NET của tôi tải lên tệp. Tôi đã cố gắng tinh chỉnh tệp web.config để cho phép tải lên lớn hơn. Trong web.config của tôi, tôi đặt:asp.net - tập tin đăng bài cho kết quả trang 404 mặc dù đã đăng tập tin cũng dưới maxRequestLength

<httpRuntime maxRequestLength="2097152" executionTimeout="3600" /> 

Trên trang của tôi, khi tôi cố gắng để tải lên các file nhỏ hơn, không có vấn đề ... ngay cả ở 25MB. Tuy nhiên, khi tôi cố gắng tải lên tệp 50MB, tôi vẫn nhận được trang lỗi 404.

LƯU Ý: Tôi có điều khiển flash trên một trang khác có thể tải lên gần 2gb mà không gặp vấn đề gì, sử dụng cùng một cài đặt web.config này. Kết quả tương tự trên các máy tính khác nhau, cùng một kết quả khi được đăng lên các máy chủ web khác nhau. Máy chủ web của tôi là Windows Server 2008 R2.

Bất kỳ ý tưởng nào về nguyên nhân? Tại sao flash sẽ ổn, nhưng điều khiển tải lên bình thường có vấn đề này?

Trả lời

23

Tôi đã tìm thấy câu trả lời. Windows Server 2008 R2 được sử dụng IIS7 (tất nhiên), và trong IIS7, bạn phải thiết lập như sau trong tập tin web.config của bạn (trong ví dụ của tôi để tăng giới hạn đến 2GB):

<system.webserver> 
    <security> 
    <requestFiltering> 
     <requestLimits maxAllowedContentLength="2147483648" /> 
    </requestFiltering> 
    </security> 
<system.webserver> 

này làm việc, khi mọi thứ khác không. IIS7 theo giới hạn mặc định tải lên 30mb trừ khi ghi đè này được đặt.

+1

Cảm ơn. Có vấn đề chính xác cùng một vấn đề trong một ứng dụng mvc 4 chạy trên IIS 7.5. Sửa lỗi của bạn đã hoạt động. Sự thận trọng duy nhất có thể khiến máy chủ dễ bị tấn công Dos hơn nếu nó công khai. – JimSTAT

1

executionTimeout chỉ áp dụng nếu thuộc tính gỡ lỗi trong phần tử biên dịch là False. (xem thêm http://msdn.microsoft.com/en-us/library/e1f13641.aspx)

Vì vậy, hãy thử khi khởi động ứng dụng trong Cấu hình phát hành.

+0

Vậy điều đó có nghĩa là nó sẽ bị bỏ qua nếu ở chế độ gỡ lỗi? Có nghĩa là, nếu tôi tăng số lượng để kéo dài thời gian chờ, thời gian chờ thực sự sẽ vẫn là mặc định? – pearcewg

+0

Có. Xem thêm [tại đây] (http://stackoverflow.com/questions/2231015/is-there-a-way-to-make-executiontimeout-take-effect-while-debugging) –

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