Chiaramente mi manca qualcosa, non sono in grado di distribuire una semplice applicazione ASP.NET MVC 4, .NET 4.5 su Windows Small Business Server 2008 in IIS 7.ASP.NET 4.5 MVC 4 non funziona su Windows Server 2008 IIS 7
.NET framework 4.5 è installato.
Dovrei dovrei vedere quella versione (4.5) nelle impostazioni di base dell'applicazione Pool dell'applicazione? In questo momento, ho solo 2.0 e 4.0, dal momento che 4.5 è come il 3.5 che aggiunge solo sopra il framework 4.0, immagino sia normale.
Quando si naviga in home page, ho ricevuto il seguente errore:
403 - Accesso negato: Accesso negato. Non si dispone dell'autorizzazione per visualizzare questa directory o pagina utilizzando le credenziali fornite.
Quando richiedo l'unico controller denominato Pagina/pagina/indice ottengo la pagina 404 non trovata. Come il processo ASP.NET non ottiene mai la richiesta http.
Posso richiedere una semplice pagina HTML.
Il pool di applicazioni è impostato su .NET 4.0 e integrato come modalità di pipeline gestita.
NETWORK SERVICE ha accesso in lettura/scrittura alla directory.
L'app funziona perfettamente da VS2012, naturalmente.
Non ho idea di cosa non ci sia, e le query sui motori di ricerca non aiutano molto.
Qualcuno avrebbe un suggerimento, che sarebbe estremamente apprezzato. Grazie
Modifica
le DLL sono già sulla cartella bin come System.Web.Mvc, System.Web.Razor ecc
ho creato una pagina vuota Test.aspx per assicurarsi il processo di lavoro di asp.net stava ricevendo la richiesta e sì la pagina era OK. Sembra quindi che il routing MVC non funzioni, sebbene l'app Web ASP.NET MVC 3 funzioni correttamente su quel server.
Dopo l'installazione di .NET 4.5 ho fatto un aspnet_regiis -iru nel caso, che ha aggiunto una cartella aspnet_client nell'app, ma ancora questo non risolve il problema.
L'autenticazione anonima è attiva nella sezione Autenticazione IIS e l'autorizzazione di autorizzazione consente a tutti gli utenti.
ASP.NET MVC 4 è installato, ho appena fatto una riparazione per essere sicuro.
Anche se ASP.NET MVC 4 è installato, l'errore 404 dalla richiesta dell'azione/page/index viene restituito dall'IIS standard e non dall'errore standard di aspnet. Quindi, in effetti, sembra che il framework MVC 4 non sia installato correttamente, semplicemente riesco a ricontrollare e fare una riparazione. Dove posso continuare a indagare?
@Mystere Man, ho modificato l'autenticazione anonima per utilizzare l'identità del pool di applicazioni, interrompere, avviare l'app e ancora lo stesso errore. Sembra davvero che ASP.NET MVC 4 non stia accettando la richiesta.
Ecco una parte del web.config:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
</system.webServer>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
Modifica 2012/09/27
ho riparazione di Microsoft .NET Framework 4.5 e riparare l'ASP.NET MVC 4 , distribuire nuovamente la semplice app ASP.NET MVC 4 e ho ancora lo stesso comportamento. Non sono sicuro di cosa fare dopo, quindi ho iniziato una ricompensa nella speranza che qualcuno potesse aiutarmi a trovare il problema.
Modifica 2014/01/31
Quando ho chiesto a questa domanda, ho segnalato le runAllManagedModulesForAllRequests come la risposta accettata, perché ha risolto il problema. Ma di sicuro non l'avrei usato in produzione. Chiedo perché ho dovuto fare questo e non ho avuto alcuna risposta.
Rispondere alla Martin Hollingsworth risposta era davvero quello che stavo cercando, un buon modo per risolvere questo problema senza tutti i problemi di prestazioni relativi al runAllManagedModulesForAllRequests.
Abbiamo quasi rinunciato e acquistato un nuovo server Windows 2012 (da cui l'applicazione ASP.NET MVC funziona così com'è). Dopo aver provato la soluzione di Martin, il server Windows 2008 ha funzionato.
Potrebbe confermare che il pool di applicazioni è in esecuzione con l'account SERVIZIO DI RETE? –
Sì, il pool di applicazioni utilizza l'account NetworkService (dall'elenco a discesa integrato) –
L'autenticazione anonima è abilitata (o qualsiasi altra autenticazione si prevede di utilizzare)? –