2009-05-26 36 views
5

Tôi có một vài trang để chạy. Khi tôi đặt debug="false" trong thẻ <compilation /> trong web.config, tôi nhận được "Yêu cầu đã hết thời gian". lỗi (và các khối try/catch nội bộ trong mã của tôi nhận được lỗi "Thread is being aborted.""Yêu cầu hết hạn". lỗi khi cài đặt debug = "false"

Sửa lỗi để cho phép các trang dài chạy ở chế độ sản xuất là gì? Chế độ gỡ lỗi có thời gian chờ vô hạn?

+0

Bạn có chắc bạn cần một trang để chạy? Bạn có thể di chuyển chức năng đó sang ứng dụng bảng điều khiển mà bạn lên lịch không? – sisve

+0

Ehh ... nó chỉ được truy cập thông qua biểu mẫu web để dễ sử dụng. Đó là một trang được bảo vệ và một tác vụ được lên lịch truy cập vào nó hàng đêm. Điều "đúng" cần làm là có thể khởi động các tác vụ này thông qua dịch vụ Windows hoặc thứ gì đó, nhưng nếu nó không bị hỏng, hãy làm việc trên một thứ có thể giúp tạo doanh thu :) – JerSchneid

Trả lời

5

Bạn chỉ cần tăng thời gian chờ tập lệnh để thực thi trang. Giá trị mặc định là 90 giây, vì vậy nếu bạn cần thêm thời gian, hãy thay đổi nó trong phần tử system.web sau đây (thuộc tính executionTimeout):

+0

Ngoài việc tăng thời gian chờ, bạn cũng có thể muốn xem xét việc làm cho trang không đồng bộ. Một trang chạy dài trong chế độ đồng bộ sẽ tiêu thụ một luồng cho thời lượng. Bằng cách làm cho nó không đồng bộ, bạn giải phóng luồng ASP.NET đó để nó có thể xử lý các yêu cầu khác, trong khi một chuỗi bổ sung được sinh ra trong nền để xử lý yêu cầu chạy dài của bạn. Những ngày này, các trang async ASP.NET khá dễ sử dụng. – jrista

5

Bạn có thể đặt tối đa thời gian cho các yêu cầu trong web.config:..

<system.web> 
    ... 
    <httpRuntime executionTimeout="600" /> 

đâu executionTimeout quy định cụ thể số lượng tối đa giây mà một yêu cầu được phép thực hiện trước khi tự động tắt bởi ASP.NET Chi tiết có thể được tìm thấy here.

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