2009-11-07 17 views
5

Pracowałem nad aplikacją sieci web ASP.NET MVC w systemie Windows XP i Visual Studio 2008 (przy użyciu serwera WWW Visual Studio). Niedawno zainstalowałem system Windows 7 w wersji 64-bitowej Ultimate, IIS 7.5 i wykonałem migrację mojej aplikacji przy użyciu appcmd.Dlaczego moja witryna próbuje załadować 32-bitowy plik aspnet_filter.dll, nawet gdy "enable32BitAppOnWin64" jest ustawione na False?

Jeśli ustawię flagę enable32BitAppOnWin64 == false w mojej puli aplikacji, moja aplikacja będzie działać poprawnie. Tak szybko, jak ustawić go na true (ponieważ chcę go uruchomić w 64-bitowy) rzuca ten wyjątek:

Screen Shot of error

HTTP Error 500.0 - Internal Server Error 
Calling LoadLibraryEx on ISAPI filter "C:\Windows\Microsoft.NET\Framework\v2.0.50727\\aspnet_filter.dll" failed 

Jeśli pójdę i usunąć wszystkie filtry ISAPI ale pozostawić ASP.Net_2.0.50727-64 wtedy ten błąd odchodzi.

Jak rozwiązać ten problem?

+0

Kim jesteś mohit jesteś indian Regard Anirudha Gupta http://anirudhagupta.blogspot.com –

+0

tak Anirudha, jestem Hindusem ... – Mohit

Odpowiedz

2

Wygląda na to, że potrzebujesz 64-bitowych filtrów ISAPI.

32-bitowe biblioteki DLL nie będą działać na maszynie 64-bitowej, chyba że posypiesz na nich trochę magicznego pyłu. Właśnie dlatego istnieje flaga enable32BitAppOnWin64.

Ustaw flagę na true i wygrzewaj się w blasku pyłu pixie.

+0

Ale myślę, że mam 64-bitowy ISAPI filtr znajdujący się w moim katalogu 64, który wskazywał na ASP.Net_2.0.50727-64 – Mohit

0

Wygląda na to, że Mapowanie dla obsługi witryny preConditions dla Twojej witryny jest nieco pomieszane. W programie IIS MMC przejdź do witryny i otwórz funkcję mapowania procedur obsługi. W okienku Akcje po prawej stronie kliknij link "Przywróć na rodzica".

3

Klucz jest w ścieżce wymienionej w błąd:

"C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_filter.dll"

Zawiadomienie istnieje dodatkowy ukośnik w ścieżka. W podwyższonej poleceń, przejdź do katalogu ../Framework/v2.0.50272 i uruchomić następujące polecenia:

aspent_regiis -r

Alternatywnie, zastosowanie IIS zmodyfikować prawidłowego toru filtra.

Więc magiczny pył nie jest potrzebny ... wystarczy zarejestrować właściwą ścieżkę. :)

+2

'aspnet_regiis -r', nie był dla mnie wystarczający, ale' aspnet_regiis -ua' (aby odinstalować WSZYSTKIE framewrmy ASP.net) i NASTĘPNIE działało '-r'. Być może będziesz musiał jednak naprawić uprawnienia w folderze 'Temporary ASP.NET Files'. –

0

To właśnie stało się z wdrożeniem projektu. Zmiana puli aplikacji na stronie załatwiła sprawę. znaleźć odpowiedź na Rick Strahl's weblog