2011-08-10 21 views
13

Kể từ khi tôi đã thay đổi lưu trữ của tôi để ASP.NET 4.0 Web Form và IIS7 Chế độ tích hợp, trang web của tôi thường có lỗi dưới đây:NullReferenceException trong PipelineStepManager.ResumeSteps

[NullReferenceException: Object reference not set to an instance of an object.] System.Web.PipelineStepManager.ResumeSteps(Exception error) +197
System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +89
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +189

Tuy nhiên, trang web hoạt động tốt. Làm cách nào để khắc phục sự cố này?

+0

Bạn đã cố gắng giải quyết vấn đề này chưa? – jkyadav

+0

Bất kỳ ai giải quyết vấn đề này? Tôi thấy điều này: System.NullReferenceException: Tham chiếu đối tượng không được đặt thành phiên bản của đối tượng. tại System.Web.HttpApplication.PipelineStepManager.ResumeSteps (lỗi Exception) tại System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion (IAsyncResult ar) tại System.Threading.Tasks.Task.Execute() --- End của nội ngoại lệ stack trace --- – dmarlow

Trả lời

5

Bạn có bất kỳ HttpModules tùy chỉnh nào trong ứng dụng của mình không? Điều này xảy ra với tôi khi tôi đã và HttpModule thêm các sự kiện ứng dụng trên Init. Hãy thử vô hiệu hóa HttpModule tùy chỉnh của bạn và xem liệu ứng dụng của bạn có vượt qua thời điểm này hay không. Nếu có, thì đó là do sự khác biệt giữa cách thức hoạt động của HttpModule trong .Net 3.5 và .Net 4.0.

+0

Cảm ơn câu trả lời của bạn Gisli, tôi đã gỡ bỏ tất cả HttpModule khỏi dự án của tôi bởi nó vẫn không giải quyết được. Cuối cùng, tôi đã thay đổi IIS từ Tích hợp thành Cổ điển và thay đổi URL định tuyến để có phần mở rộng (.aspx) bây giờ nó hoạt động tốt. – Sambo

+4

bạn đang làm một cái gì đó tương tự như thế này sau đó: http://forums.asp.net/t/1327102.aspx/1? (Thiết lập các sự kiện mức ứng dụng lập trình trên Application Start thay vì chỉ tạo các hàm có tên Application_ trong lớp Ứng dụng của bạn) – gislikonrad

8

Như Gisli Konrao đã đăng, trong một nhận xét, đó là do thực tế là bạn có một trình xử lý sự kiện tùy chỉnh có dây trong ứng dụng ASP.NET MVC 4.

Trong trường hợp của tôi, tôi đã có:

this.BeginRequest += new EventHandler(MvcApplication_BeginRequest); 

Sau khi cho ý kiến ​​ra tuyên bố này, các vấn đề đã được cố định (ASP.NET dây lên những sự kiện trên nền, vì vậy chỉ cần xác định nó sẽ làm cho nó hoạt động).

+0

khi sử dụng Xác thực Windows, trong trường hợp của tôi và thêm vào đây: 'this.AuthenticateRequest + = vcApplication_AuthenticateRequest;' – Legends

7

Tôi đã giải quyết vấn đề này bằng cách di chuyển mã hook-up quan sát sự kiện BeginRequest của tôi vào hàm tạo Global.asax (MvcApplication).

Tôi cũng đã đệ trình một lỗi kết nối khác vì một lỗi tương tự đã bị đóng không thể tái sản xuất được, nhưng lỗi này có vẻ là tất cả các diễn đàn trên web.

https://connect.microsoft.com/VisualStudio/feedback/details/788481/iis-express-with-vs2012-null-ref-when-attaching-handler-to-httpapplication-beginrequest

Một ref rỗng không bao giờ đúng. Chúng ta không nên thấy các thay đổi null từ một MS API.

1

Đặt mã để kết nối các sự kiện và khởi tạo nội dung trong phương thức Init() được ghi đè của lớp HttpApplication. Đó là nghĩa vụ phải bắn sau khi những điều cần thiết ASP.NET là tất cả các thiết lập.

+0

Điều này không cung cấp một câu trả lời cho câu hỏi. Khi bạn có đủ [danh tiếng] (https://stackoverflow.com/help/whats-reputation), bạn sẽ có thể [nhận xét về bất kỳ bài đăng nào] (https://stackoverflow.com/help/privileges/comment); thay vào đó, [cung cấp câu trả lời không yêu cầu làm rõ từ người hỏi] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-thay thế). - [Từ đánh giá] (/ đánh giá/chất lượng thấp-bài viết/19021373) – Steve

+0

Tôi thực sự đã cho nó một upvote, vì nó cố định vấn đề cho tôi ... –

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