2011-08-10 18 views
13

Odkąd zmieniłem hosting ASP.NET 4.0 Web Form i trybie zintegrowanym IIS7, moja strona ma zwykle poniższy błąd:NullReferenceException w 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

Jednak strona działa prawidłowo. Jak mogę rozwiązać ten problem?

+0

Czy udało Ci się rozwiązać ten problem? – jkyadav

+0

Ktoś rozwiązuje ten problem? Widzę to: System.NullReferenceException: Odwołanie do obiektu nie jest ustawione na wystąpienie obiektu. w System.Web.HttpApplication.PipelineStepManager.ResumeSteps (błąd wyjątku) w System.Web.HttpApplication.CallHandlerExecutionStep.OnAsyncHandlerCompletion (IAsyncResult ar) w System.Threading.Tasks.Task.Execute() --- Koniec wewnętrzny wyjątek stosu śledzenia --- – dmarlow

Odpowiedz

5

Czy masz jakieś niestandardowe HttpModules w swojej aplikacji? Zdarzyło mi się to, gdy miałem i HttpModule dodawanie zdarzeń aplikacji na Init. Spróbuj wyłączyć niestandardowy moduł HttpModule i sprawdź, czy aplikacja przechodzi przez ten punkt. Jeśli tak, to z powodu różnicy między działaniem HttpModule w .Net 3.5 i .Net 4.0.

+0

Dziękuję za odpowiedź Gisli, usunąłem cały HttpModule z mojego projektu przez niego nadal nie rozwiązuje. W końcu zmieniłem IIS z Integrated na Classic i zmieniłem adres URL routingu na rozszerzenie (.aspx), teraz działa dobrze. – Sambo

+4

robisz coś podobnego do tego: http://forums.asp.net/t/1327102.aspx/1? (Ustawianie zdarzeń aplikacji na poziomie aplikacji przy uruchamianiu aplikacji, a nie tylko tworzenie funkcji o nazwie Application_ w Twojej klasie aplikacji) – gislikonrad

8

Jak napisał Gisli Konrao w komentarzu, jest to spowodowane faktem, że masz niestandardową procedurę obsługi zdarzeń połączoną z aplikacją ASP.NET MVC 4.

W moim przypadku miałem:

this.BeginRequest += new EventHandler(MvcApplication_BeginRequest); 

Po zakomentowanie to stwierdzenie, problem został rozwiązany (druty ASP.NET się tych wydarzeń w tle, więc po prostu definiowania pozwoli on działać).

+0

podczas korzystania z uwierzytelniania systemu Windows, w moim przypadku i dodawanie tego: 'this.AuthenticateRequest + = vcApplication_AuthenticateRequest;' – Legends

7

Rozwiązałem to, przesuwając mój kod dostępu obserwatora zdarzeń BeginRequest do konstruktora Global.asax (MvcApplication).

Również zgłosiłem inny błąd połączenia, ponieważ podobny był zamknięty, ponieważ nie można go odtworzyć, ale ten błąd wydaje się być na wszystkich forach w sieci.

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

null ref nigdy nie jest w porządku. Nie powinniśmy widzieć wartości null z MS API.

1

Umieszczenie kodu do łączenia zdarzeń i inicjalizacji w nadpisaną metodę Init() klasy HttpApplication. To powinno wystrzelić po tym, jak wszystkie niezbędne rzeczy ASP.NET zostały skonfigurowane.

+0

Nie zapewnia to odpowiedź na pytanie. Gdy masz już wystarczającą [reputację] (https://stackoverflow.com/help/whats-reputation), będziesz mógł [komentować dowolny wpis] (https://stackoverflow.com/help/privileges/comment); zamiast tego [dostarczaj odpowiedzi, które nie wymagają wyjaśnień od pytającego] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-zamiast). - [Z recenzji] (/ recenzja/niskiej jakości-posts/19021373) – Steve

+0

Tak naprawdę dałem mu głos, ponieważ rozwiązał problem dla mnie ... –

Powiązane problemy