Domanda

Sono in esecuzione Windows 7 Ultimate (64 bit) utilizzando Visual Studio 2010 RC.Ho deciso da poco di avere VS run/debug mie app su IIS, piuttosto che il dev server che viene con esso.

Tuttavia, ogni volta che l'utente tenta di eseguire un'applicazione MVC, ottengo il seguente errore:

Errore HTTP 403.14 - Vietato Il server Web è configurato per non elencare il contenuto della directory.Mappa

Informazioni Di Errore

Modulo DirectoryListingModule

Notifica ExecuteRequestHandler

Gestore StaticFile Errore

Codice 0x00000000 Richiesto

URL http://localhost:80/mySite/

Fisica Percorso C:\myProject\mySite\

Metodo Di Accesso Accesso Anonimo

Utente Anonimo

Ho messo un default.aspx file nella directory e ho ricevuto il seguente errore:

Errore HTTP 500.21 - Internal Server Gestore Di Errore "PageHandlerFactory-Integrato" è un il modulo "ManagedPipelineHandler" in il suo modulo elenco

Ci sono altri passi che ho dimenticato di prendere per ottenere questo lavoro?

Note:Ho installato IIS 7.5 dopo l'installazione di VS 2010 RC.Ho usato il built-in "Creare la Directory Virtuale" pulsante sotto "Web" scheda progetto MVC "Proprietà" in Visual Studio 2010.Ho fatto in modo che l'applicazione sta utilizzando ASP.NET 4 App Piscina.

Di seguito sono installati funzionalità di IIS ho.

alt text

È stato utile?

Soluzione

ASP.NET 4 non è stata registrata in IIS.Doveva eseguire il seguente comando nella riga di comando/run

32bit (x86) di Windows

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir

64bit (x64) Windows

%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir

Nota da David Murdoch commento:

Che l' .net versione è cambiato dal momento che questa Risposta è stato pubblicato.Controllare quale versione del framework è in la cartella %windir%\Microsoft.NET\Framework64 directory e modificare il comando di conseguenza prima di eseguire (è attualmente v4.0.30319)

Altri suggerimenti

Una cosa di più per assicurarsi voi avere è il seguente set del web.config:

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

Assicurarsi di che avere è il seguente set del web.config:

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

Soluzione migliore:

Anche se la soluzione di cui sopra funziona assolutamente bene, può causare altri problemi come funziona registrati HTTP moduli a ogni richiesta (anche a ogni richiesta di .jpg .gif .css .html .pdf, ecc) ed è, ovviamente, uno spreco di risorse.Invece

<system.webServer>
<modules>
  <remove name="UrlRoutingModule-4.0"/>
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>

Assicurarsi presupposto attributo è vuoto significa che verrà eseguito su tutte le richieste.[Leggi di più](http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html"Leggi il post originale")

Un altro motivo per cui qualcuno potrebbe ottenere questo errore se il file Globale.asax non è nella cartella principale più.

Ho, inoltre, di ricevere questo errore e ha scoperto che "il Reindirizzamento HTTP" non è stata attivata in Windows Server.Questo post lo indica così: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx

Dolce Gesù.Ho provato tutte le suddette cose (ma ha trovato le mie impostazioni identiche).ANCORA un'ALTRA SOLUZIONE se si hanno problemi:

http://support.microsoft.com/kb/980368

Provare a installare questa KB per il vostro sistema.Se si sta vedendo gli errori 404 potrebbe essere, perché non si dispone di questo update -- e il modulo isapi non è sempre trovato e non c'è molto che si può fare senza questo!

Anche u può passare AppPool per Integrato la modalità.Thnx a Michele Bianchi (https://stackoverflow.com/a/7956546/1143515), Voglio solo sottolineare che.

Per me Azure Server 2012 R2 IIS 8.5 VM con un Asp.Net MVC 5 app (bin distribuito MVC 5) ho dovuto fare le seguenti da un elevato prompt cmd anche se ho avuto 4.5 già installato:

dism /online /enable-feature /featurename:IIS-ASPNET45

Fonte: http://support.microsoft.com/kb/2736284

Ho anche la forza bruta installato tutte le funzionalità di IIS con il seguente PowerShell:

import-module servermanager
add-windowsfeature web-server -includeallsubfeature

Fonte: http://www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2

Ora la mia app è funzionante.

Abbiamo avuto una applicazione MVC spostato su un nuovo server..NET MVC 4 e 3 è stato installato, ma abbiamo ancora ricevuto "Errore 403.14".In questo caso, questo significava che IIS non ha capito che aveva a che fare con una applicazione MVC, era alla ricerca per la pagina di default.

La soluzione era semplice:Il Reindirizzamento HTTP non è stato installato sul server.

Server Manager – Ruoli – Web Server (IIS) – Ruoli – Servizi di Reindirizzamento HTTP:Non è installato.Installato, problema risolto.

Anche se la tua app è precompilato si dovrebbe avere

PrecompiledApp.config

nella cartella principale della vostra applicazione, altrimenti si potrebbe ottenere HTTP Error 403.14 come bene.

Un'altra soluzione possibile, se ci si sposta in giro globale.asax, assicurarsi che il markup punti per la corretta MvcApplication classe.Spero che questo possa salvare qualcuno in futuro.

Io avevo usato il WebDeploy IIS Estensione per importare i miei siti web da IIS6 per IIS7.5, in modo che tutte le impostazioni di IIS sono esattamente come erano stati in ambiente di produzione.Dopo aver provato tutte le soluzioni fornite qui, nessuno dei quali ha lavorato per me, che ho semplicemente modificare l'App impostazione della Piscina per il sito web, dal Classico a quello Integrato.

Ho incontrato lo stesso 404.14 problema improvvisamente.Infine, il problema era stato risolto togliendo la spunta a "precompila durante la pubblicazione" nel pubblicare le impostazioni del profilo.

Ho modificato il mio percorso di default in un punto:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = UrlParameter.Optional }

A:

routes.MapRoute(
"Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index" }

Che mi ha dato l'errore.Contento che qualcuno ha detto di routing, perché probabilmente sarebbe stato per sempre.

Nel mio caso ASP.NET 4.5 non è installato sul server in modo da installare ASP.NET 4.5 risolto il problema.

È possibile risolvere questo problema eseguendo cmd come amministratore di enter image description here

Fare lo stesso come nella foto di windows 32 bit

Basta fare modifiche a 64-bit come framework64 invece di un contesto di solo Di andare a iis e aggiornare il sito
U se non hai ancora qualche errore di apportare modifiche nel pool di

Ho avuto un altro problema che ha portato a questo problema.

  • Avevo assicurato la mia app piscina era in esecuzione .rete 4 in modalità integrata
  • Ho dovuto eseguire aspnet_regiis.exe -mi
  • Avevo controllato la cartella autorizzazioni sono state impostate correttamente per l'account che esegue la mia app piscina

Nessuna di queste cose ha funzionato.Si è scoperto che nel mio web.config di sistema.webserver > moduli che ho avuto la seguente:

<remove name="WindowsAuthentication" />

Ovviamente questo rimosso il modulo di autenticazione di windows, che sembrava in qualche modo knock tutto off kilter.

Spero che questo aiuta qualcuno, questo mi è costato più di una sera!

L'interfaccia utente è un po ' diverso nelle versioni più recenti di Windows Server.Qui è dove si deve attivare ASP.Net in ordine per farlo funzionare su IIS

Fix IIS & Asp.net

L'aggiunta di un'altra soluzione per questo problema.

nel mio Globale.asax.cs file che ho avuto disabili tentato file php da consumato dal MVC pipeline utilizzando il seguente:

routes.IgnoreRoute( "{*php}" );

Avevo fatto precedentemente in MVC2 progetto e ha funzionato bene, ma per fare questo nel mio MVC 3 app ha causato il problema segnalato sopra.

Ancora un altro motivo che questo può accadere e il RouteConfig.cs o WebApiConfig.cs non sono validi.

Nel mio caso, ho avuto un percorso definito come tale (nota le parentesi invece di parentesi graffe):

...
routeTemplate: "api/(something}"
...

Nota per gli utenti di Windows 8 è necessario aggiungi/rimuovi componenti di windows e rimuovere la versione di .net riavviare, quindi re-installare per poter registrare con IIS.Presumo che questo succede se si ottiene .net 4.5 da visual studio e installare IIS dopo.

Per quanto strano possa sembrare, reinstallare IIS era che cosa ha funzionato per me, con il seguente comando da eseguire all'interno dell' .net versione cartella:

aspnet_regiis.exe /i

enter image description here

Quando ho eseguito questo comando, ho iniziato ottenere l'Errore HTTP 403.14.Ma una volta che ho partecipato di nuovo il comando è risolto il problema.

Obs:Un'altra cosa che ho anche fatto è stato rimuovere il Reindirizzamento HTTP dal server funzionalità di Gestione Server di schermo prima di reiinstalling IIS.Forse anche questo ha avuto un impatto nel risolvere il problema, ma non sono sicuro.Così, se reinstallare IIS ancora non funziona, provare a rimuovere HTTP Redirect e provare di nuovo.Speriamo che possa funzionare anche per te.

Per risolvere questo problema senza dover ricorrere a 32 bit in modalità sarà necessario aggiornare il codice sorgente per questo progetto

public static void RegisterUrlRoutesFromAttributes(RouteCollection routes)
{
    // Enumerate assembly for UrlRoute attributes.
    List<MapRouteParams> routeParams = new List<MapRouteParams>();
    AppDomain.CurrentDomain.GetAssemblies()
        .ToList()
        .ForEach(assembly => routeParams.AddRange(GetRouteParamsFromAttributes(assembly)));

Ho sollevato questo problema come una discussione sul forum di discussione presso il cloud progetto codeplex.

http://itcloud.codeplex.com/discussions/262000

Questo ha funzionato per me e potrebbe essere utile ad un altro.

Forse tutti i componenti necessari non sono presenti e/o non tutti sono registrati correttamente.Per risolvere questo problema, provare a deselezionare tutte le opzioni all'interno del Pannello di Controllo -> Attivazione o disattivazione delle funzionalità Windows -> Internet Information Services -> World Wide Web Services -> Funzioni di Sviluppo di Applicazioni, deselezionare tutte le opzioni e ricontrollare tutto e poi ripristinare l'IIS e verificare se il problema è risolto.

enter image description here

Se si esegue IIS 8.5 su Windows 8 e Server 2012, si potrebbe trovare che l'esecuzione di mvc 4/5 (.net 4.5) non funziona in una directory virtuale.Se si crea un host locale voce nel file host per puntare di nuovo al vostro computer locale e quindi punto di un nuovo IIS locale sito alla cartella (con la corrispondente voce di intestazione host) troverete che funziona allora.

Ho creato un nuovo spazio dei nomi (e quindi la cartella) identico al percorso di un controller (ad es. MvcApp/Test/SomeClasses.cs e MvcApp/Controllers/TestController.cs).Questo ha portato anche in un 403.14!

Per me, la soluzione era quella di aggiungere il pacchetto NuGet di Microsoft.AspNet.Pagine web (oltre il Rasoio e le dipendenze dell'Infrastruttura) per il mio progetto web.

Infrastruttura doveva essere con forza reinstallare in quanto non è stato aggiunto come riferimento in un primo momento.

Nel mio caso .NET CRL Versione nel pool di prppertires è stato impostato Nessun codice gestito (non so perché).L'impostazione di .NET CRL Versione v4.0.30319 risolto il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top