Nếu bạn muốn kéo dài khoảng thời gian được phép để tập lệnh ASP.NET thực thi thì hãy tăng Server.ScriptTimeout
giá trị. Mặc định là 90 giây cho .NET 1.x và 110 giây cho .NET 2.0 trở lên.
Ví dụ:
Server.ScriptTimeout = 300;
Giá trị này cũng có thể được định cấu hình trong web.config
tệp của bạn trong httpRuntime
phần tử cấu hình:
<httpRuntime executionTimeout="300"
... other configuration attributes ...
/>
Vui lòng lưu ý theo tài liệu MSDN :
"Thời gian chờ này chỉ áp dụng nếu thuộc tính gỡ lỗi trong phần tử biên dịch là Sai. Do đó, nếu thuộc tính gỡ lỗi là Đúng, bạn không phải đặt thuộc tính này thành giá trị lớn để tránh ứng dụng bị tắt trong khi gỡ lỗi. "
Nếu bạn đã làm điều này nhưng nhận thấy rằng phiên của bạn sắp hết hạn thì hãy tăng HttpSessionState.Timeout
giá trị ASP.NET :
Ví dụ:
Session.Timeout = 30;
Giá trị này cũng có thể được định cấu hình trong web.config
tệp của bạn trong sessionState
phần tử cấu hình:
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
timeout="30" />
</system.web>
</configuration>
Nếu tập lệnh của bạn mất vài phút để thực thi và có nhiều người dùng đồng thời thì hãy xem xét việc thay đổi trang thành Trang không đồng bộ . Điều này sẽ làm tăng khả năng mở rộng ứng dụng của bạn.
Một giải pháp thay thế khác, nếu bạn có quyền truy cập của quản trị viên vào máy chủ, là coi hoạt động đang hoạt động lâu dài này như một ứng cử viên để triển khai dưới dạng tác vụ đã lên lịch hoặc dịch vụ windows.