Trang web của chúng tôi nằm trong .NET nhưng với một số thư viện ASP và 32 bit cũ trong đó. Nó đã được làm việc tốt trong một thời gian (2 năm). Nhưng trong tháng qua, chúng tôi đã thấy lỗi sau trên máy chủ IIS7 của chúng tôi, mà chúng tôi không thể theo dõi và sửa lỗi:IIS7: Ứng dụng lỗi w3wp.exe, nguyên nhân gốc rễ của các sự cố này là gì?
"Ứng dụng lỗi w3wp.exe, phiên bản 7.0.6001.18000, dấu thời gian 0x47919413, mô-đun lỗi kernel32.dll, phiên bản 6.0.6001.18215, tem thời gian 0x4995344f, mã ngoại lệ 0xe053534f, lỗi offset 0x0002f328, quá trình id 0x% 9, thời gian bắt đầu ứng dụng 0x% 10. "
Chúng tôi có thể sao chép các lỗi:
Một trong trang aspx của chúng tôi bắt đầu xếp hàng, thực thi mã và các truy vấn (chúng tôi có response.flush() trên tất cả các trang để theo dõi nơi nghỉ đang), sau đó nó đột nhiên dừng lại và chúng tôi nhận được lỗi trên trong IIS.
Trang dừng bốc, mà không có sự response.flush(), nó không phải chuyển hướng đến trang error.aspx của chúng tôi (như cấu hình trong web.config)
Các lỗi không xảy ra tất cả các thời gian. Đôi khi, nó xảy ra 3 lần liên tiếp, sau đó nó hoạt động tốt trong 15 phút không ngừng với một chuyển hướng thích hợp đến error.aspx.
Lỗi chúng tôi nhận được sau đó là cổ điển: "Hoặc BOF hoặc EOF là True hoặc bản ghi hiện tại đã bị xóa".
Khi lỗi xảy ra, trang bị treo và tất cả các phiên khác trên cùng một máy tính từ bất kỳ trình duyệt nào cũng treo trang web (BTW, chúng tôi chỉ cho phép 1 quy trình công nhân trong khi thử nghiệm). Từ các máy tính khác, trang web tải tốt.
Tôi có thể tái chế Hồ bơi ứng dụng, xóa w3wp.exe, khởi động lại IIS. Không có gì sẽ làm. Cách duy nhất để tải thành công trang một lần nữa là Khởi động lại MS SQL xử lý các Kỳ phiên của chúng tôi. Tôi không biết tại sao điều này là, nhưng chúng tôi đoán rằng Session Cookies trên các trình duyệt người dùng trỏ đến một chủ đề mà không được chấm dứt đúng (do sự cố ở trên) và IIS đang chờ nó chấm dứt để xử lý thêm mã (?). Nếu ai đó có thể giải thích điều này tốt hơn, điều đó sẽ thực sự hữu ích. Có một thời gian chờ mà chúng ta có thể thiết lập để "chấm dứt" đề? Nó là một vấn đề liên quan đến MS SQL?
Tôi cũng đã xem xét sử dụng bộ nhớ riêng và bộ nhớ ảo, vì tôi nghĩ mã của chúng tôi không hiệu quả nhất và chắc chắn chúng tôi vẫn còn rò rỉ bộ nhớ. Tuy nhiên, tôi thấy sự sụp đổ của trang mặc dù cả Private và Virtual Memories vẫn còn khá thấp (dưới 100MB).
Tôi đã sử dụng Debug Diag và WinDbg như được chỉ ra ở đây: http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx, nhưng chúng tôi không thể thực hiện công việc windbg, đây là những gì chúng tôi đang cố gắng làm tại thời điểm này.
Nếu ai đó có thể giúp chúng tôi hoặc chỉ cho chúng tôi hướng đi đúng hướng sẽ thực sự tuyệt vời, cảm ơn bạn.
Bạn nên nói rõ những gì WinDbg vấn đề mà bạn gặp. –