2011-08-04 9 views
17

Mam problem z witryną ASP.NET MVC.ASP.NET MVC na IIS przechodzi do obsługi plików statycznych

Są to szczegóły:

  1. ASP.NET MVC 2
  2. ASP.NET 4 zintegrowane rurociąg
  3. IIS 7.5 na systemie Windows Web Server 2008 R2

Ilekroć zrobić wniosek o aplikację Otrzymuję komunikat "Błąd HTTP 404.0 - Nie znaleziono" - komunikat o błędzie i szczegółowe informacje o błędzie wskazują, że jest to statyczny moduł do obsługi plików, który zgłasza błąd:

  • Moduł: IIS Web Rdzeń
  • Powiadomienie: MapRequestHandler
  • Handler: StaticFile
  • Kod błędu: 0x80070002

co oznacza, że ​​wniosek nie wszedł do MVC stos.

Należy zauważyć, że IIS już obsługuje ASP.NET MVC 3 w tej samej puli aplikacji i MVC 2 w puli aplikacji ASP.ENT 2. Tak więc jest to combo ASP.NET 2 w puli aplikacji ASP.NET 4, które dają mi bóle głowy.

Zasadniczo chcę uaktualnić aplikację z ASP.NET MVC 2 na puli aplikacji ASP.NET 2.0 do ASP.NET MVC 2 na puli aplikacji ASP.NET 4.0.

Jakieś pomysły?

Odpowiedz

-7

Znalazłem błąd. W katalogu głównym był pozostawiony dokument domyślny, co nie jest konieczne w przypadku aplikacji korzystających ze zintegrowanego potoku. Również niektóre zmiany w Global.ascx i rejestracji trasy były neessary, ale potem to działało.

+2

Mógłbyś rozwinąć na rozwiązanie? Jakie zmiany w global.asax na przykład? –

+2

Podaj więcej informacji, proszę –

+0

Rozwiązanie nie wydaje się być związane z problemem. – jakejgordon

24

widzę naprawiłeś problem, ale dla każdego, kto googlowania:

miałem ten problem w moim przypadku po prostu potrzebne do zarejestrowania ASP.NET 4 z IIS. Usuwałem i ponownie dodawałem sieci w celu naprawienia innych problemów i po prostu zapomniałem tego zrobić. Komenda, który pracował dla mnie było:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319>aspnet_regiis -i

własną wersję .NET mogą być różne, zwłaszcza jeśli jesteś w przyszłości, więc powyższe ścieżka nie może być dokładnie.

+1

Myślę, że numer wersji jest tutaj ważny. Próbowałem tego samego, ale w niewłaściwej wersji Framework .net. Po prostu tutaj, na wypadek, gdyby ktoś przegapił ten punkt. To działało dla mnie. – snakepitbean

13

miałem ten sam problem, gdy zainstalowany IIS po instalacji Visual Studio itp

udało mi się rozwiązać ten problem poprzez zmianę My Web.plik konfiguracyjny, dodając runAllManagedModulesForAllRequests="true" do <modules> tagu:

<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true"> 
     ... 
    </modules> 
</system.webServer> 

(więcej szczegółów/kopiowana stąd: http://www.west-wind.com/weblog/posts/2011/Mar/27/ASPNET-Routing-not-working-on-IIS-70)

+1

I nagle zaczyna działać. Magia, którą mówię! – Edgar

+1

Ta opcja nie powinna być ustawiona, ponieważ powoduje wysłanie _własnych żądań, w tym wszystkich statycznych plików wysyłanych do zarządzanych procedur obsługi, a to powoduje zwiększenie użycia pamięci i procesora. Może zostać niezauważony w witrynach o małym natężeniu ruchu, ale gdy usługi IIS będą wyświetlać megabajty obrazów, html, js, css i inne statyczne treści na sekundę, serwer ulegnie awarii. – user3285954

+0

Po prostu obalenie komentarza @ user3285954, zwiększone zużycie pamięci i procesora jest prawie zawsze pomijalne. Pracowałem w witrynach o dużym natężeniu ruchu, a to ustawienie nigdy nie było dla mnie problemem. Proponuję wypróbować najpierw i sprawdzić, czy rzeczywiście powoduje problem z wydajnością; prawdopodobnie nie będzie. – Ryan