2011-02-11 20 views
5

Tôi đang gặp phải vấn đề chính xác giống như một báo cáo người dùng trên eggheadcafe, nhưng không biết những bước thực hiện sau khi đọc câu trả lời sau đây .:Phiên IIS bị treo cứng - Cách giải quyết "tài nguyên rò rỉ trang web cho các finalizers"?

Hai vấn đề bạn nên đuổi theo: 1. Tại sao trang web rò rỉ tài nguyên cho finalizers. Đó là xấu 2. Điều gì đang chờ đợi Oracle mã trên - làm việc với sự hỗ trợ của Oracle vào nó

Đây là vấn đề:

Tôi có một vấn đề liên tục với một trang web web lưu trữ trên IIS6 (w2k3 sp2).

Tôi dường như ngẫu nhiên xuất hiện cho người dùng khi họ nhấp vào liên kết trong phạm vi một trang. Yêu cầu được gửi đến máy chủ web nhưng phản hồi không bao giờ được trả về . Nếu người dùng cố gắng điều hướng đến một siêu liên kết khác, họ là không thể (nghĩa là trang web xuất hiện để treo cho người dùng đó). Những người dùng khác của trang web tại thời điểm đó không phải là bị ảnh hưởng bởi hàng này và nếu người dùng gặp sự cố mở http: phiên mới (đóng IE và mở lại trang web ) họ không còn .

Tôi đã đặt trình gỡ lỗi (IISState) trên quy trình w3wp với đầu ra sau. Các mục có "Chủ đề là đang chờ khóa phát hành. Tìm chủ sở hữu khóa". trông giống như họ có thể đang gây ra sự cố. Có thể bất cứ ai nói khóa nào là quá trình đang chờ?

Cảm ơn

http://www.eggheadcafe.com/software/aspnet/33799697/session-hangs.aspx

Trong trường hợp của tôi ứng dụng Net C# MVC của tôi chạy chống lại một cơ sở dữ liệu MySQL cho dữ liệu và cơ sở dữ liệu MS SQL cho thành viên Net.

Tôi hy vọng ai đó có nhiều kiến ​​thức về IIS có thể giúp giải quyết vấn đề này.

Trả lời

1

Có vẻ như bạn có điều kiện chạy đua trong các cuộc gọi cơ sở dữ liệu dẫn đến bế tắc ở cấp cơ sở dữ liệu. Bạn có thể muốn xem các thiết lập bạn có trong nhóm ứng dụng của bạn cho các kết nối cơ sở dữ liệu. Khả năng bạn sẽ cần phải đặt một số kiểm tra trong đâu đó hoặc xác định lại thủ tục để giảm khả năng cuộc đua:

http://msdn.microsoft.com/en-us/library/ms178104.aspx

+0

Cảm ơn bạn đã trả lời. Bây giờ tôi đang theo dõi các deadlocks. Nhật ký chưa báo cáo bất kỳ thông tin nào. Tôi hy vọng sẽ nhận được nhiều kết quả hơn vào thứ hai khi ứng dụng đang được sử dụng nặng nề – CLRBTH

0

tôi sẽ giải thích các kinh nghiệm treo do phiên serialization. Không phải là một phần về việc lưu/tải nó từ một số nguồn, nhưng ASP.NET không cho phép cùng một phiên thực thi hai trang song song cùng một lúc, trừ khi chúng thực thi với một phiên chỉ đọc. Sau này được thực hiện trong chỉ thị trang hoặc trong web.config, bằng cách đặt EnableSessionState = "ReadOnly".

Sự cố của bạn vẫn tồn tại, điều này sẽ không thay đổi chuỗi đầu tiên bị treo.Tôi sẽ xác minh rằng các kết nối cơ sở dữ liệu của bạn được xử lý chính xác. Tuy nhiên, bạn không bao giờ đề cập đến bất kỳ cơ sở dữ liệu Oracle nào trong câu hỏi của bạn (chỉ có Mysql và SQL Server). Tại sao bạn sử dụng trình điều khiển Oracle? (Điều này có vẻ giống như một nơi hợp lệ để bắt đầu gỡ lỗi.)

Tuy nhiên, theo David Wang trong câu trả lời của mình trong câu hỏi được liên kết, phần hai của vấn đề là khóa không bao giờ được phát hành. Bạn sẽ cần hỗ trợ từ Oracle (hoặc mã nguồn của họ) để gỡ lỗi thêm.

+0

Có lẽ tôi nên rõ ràng hơn trong câu hỏi của mình. Mô tả vấn đề tương tự như của tôi, trong trường hợp của tôi nó là một ứng dụng C# MVC đang chạy với MySQL và một cơ sở dữ liệu SQL. Vì vậy, tôi không sử dụng Oracle :) Cảm ơn bạn đã trả lời, thay đổi sessionstate thành chỉ đọc ít nhất sẽ cải thiện trải nghiệm người dùng. Tôi cũng nghi ngờ điều này bằng cách nào đó là một vấn đề liên quan đến mạng. Người dùng báo cáo hầu hết các hang bị kết nối với máy chủ sản xuất thông qua VPN để sử dụng địa chỉ IP cục bộ. Lần đầu tiên trong tuần anh ta báo cáo một ngày mà không bị treo cổ. Điều này có thể giải thích được không? – CLRBTH

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