2012-06-20 15 views
18

Tôi đang chạy ứng dụng ASP.NET 4.0 trong IIS 7.5. Nhiều lần trong ngày, hồ bơi ứng dụng của chúng tôi đang tái chế bất ngờ. Nhật ký hệ thống của chúng tôi hiển thị sự kiện sau đây khi sự cố này xảy ra:Quá trình phân phát hồ sơ ứng dụng 'X' gặp phải lỗi giao tiếp nghiêm trọng với Dịch vụ Kích hoạt Quy trình Windows

Hồ sơ ứng dụng phân phối 'X' gặp phải lỗi giao tiếp nghiêm trọng với Dịch vụ kích hoạt quy trình Windows. Id quá trình là '5768'. Các trường dữ liệu chứa số lỗi.

HOẶC

Một quá trình phục vụ hồ bơi ứng dụng 'X' thất bại trong việc đáp ứng với một ping. Id quá trình là '1032'.

Hầu như mọi khi, có một sự kiện tương ứng tại cùng một thời điểm chính xác trong Nhật ký ứng dụng như thế này:

Faulting application name: w3wp.exe, version: 7.5.7600.16385, time stamp: 0x4a5bcd2b 
Faulting module name: clr.dll, version: 4.0.30319.269, time stamp: 0x4ee9ae83 
Exception code: 0xc00000fd 
Fault offset: 0x00001916 
Faulting process id: 0x508 
Faulting application start time: 0x01cd4d8958ecf9ad 
Faulting application path: C:\Windows\SysWOW64\inetsrv\w3wp.exe 
Faulting module path: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Report Id: 8dcc413b-b98a-11e1-8075-001c23d6d910 

Vì vậy, tôi cài đặt IIS Debugging Tools và thiết lập một quy tắc sụp đổ, quy định "Một ứng dụng web cụ IIS ", không đăng nhập cho các ngoại lệ cơ hội đầu tiên, và không có gì trong" Cài đặt nâng cao "(ngoại lệ, điểm ngắt, sự kiện).

adplus -crash -pn w3wp.exe -NoDumpOnFirst -o c:\logs 

Tuy nhiên, kể từ khi tôi đã kèm theo bộ dò lỗi, tôi đã nhận được nhiều "cảnh báo" mức:

Tôi cũng (đồng thời) chạy ADPlus từ các công cụ Windows Debugging với dòng lệnh sau đây là các thông báo trong Nhật ký hệ thống (các bản ghi liên quan đến "Quy trình phân phối hồ sơ ứng dụng 'X' bị lỗi truyền thông gây tử vong ..."), nhưng tôi KHÔNG nhận được sự kiện mức Lỗi tương ứng trong Nhật ký ứng dụng nữa.

Điều duy nhất tôi đã có thể nhận được là như sau (đã có khoảng 50 trong số này):

[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 3300. Exit code - 0x800703e9 
[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 4992. Exit code - 0x800703e9 
[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 5456. Exit code - 0x800703e9 
[6/18/2012 7:50:25 PM] Thread exited. Exiting thread system id - System ID: 4924. Exit code - 0x800703e9 

Exit đang 0x800703e9 chỉ ra một chồng tràn nơi nào đó, đó là may mắn vì đó nên dễ sửa chữa khi tôi có thể tìm thấy nó.

Tuy nhiên, để làm như vậy, tôi cần thêm thông tin từ bãi đổ vỡ của mình để tôi có thể mở chúng bằng WinDbg và sử dụng lệnh "! Clrstack" để xác định vấn đề của mình.

Câu hỏi của tôi là: Tôi có các công cụ gỡ lỗi được định cấu hình không chính xác hoặc tôi có hiểu nhầm bản ghi sự kiện không? Có vẻ như hồ bơi ứng dụng của chúng tôi tái chế bất cứ khi nào tôi thấy sự kiện trong Nhật ký hệ thống liên quan đến "lỗi giao tiếp nghiêm trọng với Dịch vụ kích hoạt quy trình của Windows", tuy nhiên tôi không nhận được bất kỳ thông tin đổ lỗi nào từ Công cụ gỡ lỗi IIS hoặc ADPlus khi các sự kiện đó xảy ra. Và vì một lý do nào đó, vì tôi đã đính kèm các trình gỡ rối, tôi không nhận được thêm bất kỳ sự kiện "Lỗi" nào trong Nhật ký ứng dụng tương ứng với các sự kiện cảnh báo Nhật ký hệ thống của tôi. Không chắc chắn lý do tại sao. Tôi bằng cách nào đó cần phải có được đổ sụp đổ đầy đủ với thông tin CLR trong nó vì vậy tôi có thể tìm ra nơi mà vấn đề của tôi là.

Điều duy nhất tôi có thể nghĩ đến là dịch vụ Báo cáo lỗi Windows không hoạt động. Không chắc nó có cần hay không.

Cảm ơn bạn đã được trợ giúp.

+0

Related http://stackoverflow.com/questions/7204444/iis7-a-process-serving-application-pool-yyyyy-suffered-a-fatal-communication – RJFalconer

Trả lời

4

Cả mã ngoại lệ bạn nhận được trong Nhật ký ứng dụng và mã thoát của chuỗi cho biết bạn có tràn ngăn xếp.Đó là khó hiểu tại sao quá trình không phải là crashing khi thread thoát với lỗi tràn stack mặc dù. Dù sao, để cho phép nghỉ ngơi trên stack overflow ngoại lệ, lệnh này là:

sxe sov 

Xin lưu ý rằng bạn sẽ cần phải sử dụng phiên bản x86 của trình gỡ lỗi trong trường hợp của bạn, bởi vì hồ bơi ứng dụng của bạn được cấu hình như quá trình 32 bit.

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