2009-11-07 6 views
5

Stavo sviluppando un'applicazione Web ASP.NET MVC su Windows XP e Visual Studio 2008 (utilizzando il server Web di Visual Studio). Di recente ho installato Windows 7 a 64 bit Ultimate edition, IIS 7.5 e ho migrato la mia app utilizzando appcmd.Perché il mio sito tenta di caricare il file aspnet_filter.dll a 32 bit anche se 'enable32BitAppOnWin64' è impostato su False?

Se si imposta il flag enable32BitAppOnWin64 == false nel pool di applicazioni, la mia applicazione funziona correttamente. Non appena ho impostato a true (perché voglio che venga eseguito in 64 bit) che genera questa eccezione:

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 

Se vado ed eliminare tutti i filtri ISAPI, ma lascio ASP.Net_2.0.50727-64 questo errore Va via.

Come si risolve?

+0

Chi sei mohit sei indiano Regard Anirudha Gupta http://anirudhagupta.blogspot.com –

+0

sì Anirudha, io sono un indiano ... – Mohit

risposta

2

Sembra che siano necessari alcuni filtri ISAPI a 64 bit.

Le DLL a 32 bit non funzionano su una macchina a 64 bit a meno che non si spruzzino polvere magica su di esse. Questo è il motivo per cui esiste il flag enable32BitAppOnWin64.

Imposta la bandiera su true e crogiolatevi nella gloria della polvere di folletto.

+0

Ma penso di avere 64 bit ISAPI filtro che si trova nella mia directory framework64 questo è quanto indicato da ASP.Net_2.0.50727-64 – Mohit

0

Sembra che la mappatura dell'handler preConditions per il tuo sito sia un po 'incasinata. In IIS MMC, accedere al sito e aprire la funzionalità Mapping gestori. Nel riquadro Azioni a destra, fai clic sul link "Ripristina padre".

3

La chiave è nel percorso di cui l'errore:

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

Avviso c'è una barra extra il sentiero. A un prompt elevato dei comandi, accedere alla directory ../Framework/v2.0.50272 ed eseguire il seguente comando:

aspent_regiis -r

alternativa, utilizzare IIS per modificare il percorso corretto del filtro.

Quindi non è necessaria la polvere magica ... è sufficiente registrare la strada giusta. :)

+2

'aspnet_regiis -r' non è stato sufficiente per risolvere questo problema per me, ma' aspnet_regiis -ua' (per disinstallare TUTTI i framework asp.net) e POI il '-r' ha funzionato. Tuttavia, potrebbe essere necessario correggere le autorizzazioni sulla cartella 'File temporanei ASP.NET' dopo. –

0

Basta che ciò accada a una distribuzione del progetto. La modifica del pool di applicazioni per il sito Web ha funzionato. trovato la risposta su Rick Strahl's weblog