IIS Express gibt beim Debuggen von ASP.NET MVC den Fehler Zugriff verweigert aus

101

Ich habe ein ASP.NET MVC 3-Projekt erstellt und verwende bei der Entwicklung IIS Express als Webserver. Wenn ich versuche zu debuggen, wird die folgende Fehlermeldung angezeigt.

Wie kann das gelöst werden?

Serverfehler in '/' Anwendung.

Der Zugriff wird verweigert. Beschreibung: Beim Zugriff auf die für diese Anforderung erforderlichen Ressourcen ist ein Fehler aufgetreten. Der Server ist möglicherweise nicht für den Zugriff auf die angeforderte URL konfiguriert.

Fehlermeldung 401.2.: Nicht autorisiert: Anmeldung aufgrund von Serverkonfiguration fehlgeschlagen. Stellen Sie sicher, dass Sie über die Berechtigung zum Anzeigen dieses Verzeichnisses oder dieser Seite verfügen, basierend auf den von Ihnen angegebenen Anmeldeinformationen und den auf dem Webserver aktivierten Authentifizierungsmethoden. Wenden Sie sich an den Administrator des Webservers, um weitere Unterstützung zu erhalten.

Kris-I
quelle
3
Führen Sie IISExpress ohne Administratorrechte aus?
Chandmk
2
Nachdem ich eine Weile mit dem Kopf darauf geschlagen hatte, wurde mir endlich klar, dass VS keine Standardseite festgelegt hatte und IISExpress.exe anscheinend keine Ordnerlisten enthält, um dies zu verdeutlichen.
Mark Allen

Antworten:

113

Wenn Sie Visual Studio verwenden, können Sie auch auf das Projekt der linken Maustaste in Projektmappen - Explorer und die Änderung der Windows - Authentifizierung - Eigenschaft auf Aktiviert im Eigenschaften - Fenster.

Jason
quelle
2
Dies ist nicht spezifisch für Visual Studio 2012, sondern kann zumindest auch für Visual Studio 2010 durchgeführt werden.
Loïc Lopes
5
Arbeitete für mich in VS 2013.
Kaybee99
2
Sie müssen auch die anonyme Authentifizierung deaktivieren.
Glasiert
1
Klicken Sie im Lösungs-Explorer auf den Projektnamen unter dem Lösungsknoten und wechseln Sie dann zum Eigenschaftenfenster. Dort sehen Sie die Eigenschaft Windows-Authentifizierung, die auf
Aktiviert
1
Ich sehe diese Einstellung nirgendwo im Eigenschaftenfenster. Ich benutze VS 2015.
Mark Bonafe
99

Die Ursache für dieses Problem war, dass IIS Express WindowsAuthentication nicht zuließ. Dies kann durch Einstellen aktiviert werden

<windowsAuthentication enabled="true">

in der Datei applicationhost.config unter C: \ Users [Benutzername] \ Documents \ IISExpress \ config.

Ant Swift
quelle
19
Visual Studio 2010 und 2012 können diese Einstellung pro Projekt für Sie hinzufügen, damit die globale Einstellung nicht von ihrer Standardeinstellung geändert wird. Siehe stackoverflow.com/a/7168308/23566
Robert Claypool
Ich versuche diese Einstellung, da ich diesen Fehler auch in VS 2013 sporiadisch erhalte. Mal sehen, ob er hilft. Ich werde es Sie wissen lassen.
Matt
2
Besser, wenn Sie% userprofile% \ documents \ iisexpress \ config \ applicationhost.config verwenden. Meins war am D: (danke Dan! Danesparza.net/2014/09/… )
Jeramy Rutley
Dies ist die einzige Lösung, die für mich funktioniert hat, vielen Dank!
Mohammad Anini
Versuchte dies in VS 2017 und es hat nicht funktioniert. Die von Jason veröffentlichte Lösung hat funktioniert.
Myroslav
72

Ich habe Jasons Antwort verwendet, wollte aber klarstellen, wie ich zu Immobilien komme.

  1. Wählen Sie im Projektmappen-Explorer ein Projekt aus

Geben Sie hier die Bildbeschreibung ein

  1. F4 um zu Eigenschaften zu gelangen (anders als die Eigenschaften mit der rechten Maustaste)
  2. Ändern Sie die Windows-Authentifizierung in Aktiviert

Geben Sie hier die Bildbeschreibung ein

Tony L.
quelle
3
Vielen Dank, dass Sie dies formuliert und angegeben haben, dass die F4-Eigenschaften geändert werden müssen.
PeterDNCO
1
Danke dir! Ich musste auch 'Anonyme Authentifizierung' auf 'Aktiviert' setzen.
Mahesh
1
Vielen Dank auch!
FunMatters
1
Du bist schön.
Kosherjellyfish
1
Ich benutze VS 2015, das gibt es nicht!
Mark Bonafe
18

Hosting auf IIS Express: 1. Klicken Sie im Projektmappen-Explorer auf Ihr Projekt, um das Projekt auszuwählen. 2. Wenn der Eigenschaftenbereich nicht geöffnet ist, öffnen Sie ihn (F4). 3. Im Eigenschaftenbereich Ihres Projekts: a) Setzen Sie "Anonyme Authentifizierung" auf "Deaktiviert". b) Setzen Sie "Windows-Authentifizierung" auf "Aktiviert".

Daniel
quelle
12

In meinem Fall musste ich die Datei öffnen:

C:\...\Documents\IISExpress\config\applicationhost.config

Ich hatte dies in der Datei:

  <authentication>
  <anonymousAuthentication enabled="true" User="" />

Ich habe gerade das User=""Teil entfernt. Ich weiß wirklich nicht, wie das Ding dahin gekommen ist ... :)

Hinweis: Stellen Sie sicher, dass Sie am Ende von Folgendes Folgendes haben applicationhost.config:

   .
   .
   .
   <location path="MyCompany.MyProjectName.Web">
        <system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="true" />
                    <windowsAuthentication enabled="false" />
                </authentication>
            </security>
        </system.webServer>
    </location>
</configuration>

Vielleicht möchten Sie auch hier einen Blick darauf werfen: https://stackoverflow.com/a/10041779/114029

Jetzt kann ich wie erwartet auf die Anmeldeseite zugreifen.

Leniel Maccaferri
quelle
1
Ich bin deinen Schritten gefolgt, es funktioniert immer noch nicht für mich. Wenn von vs2010 geöffnet, funktioniert es gut, was ist das Problem in vs 2013
GANI
@ user1016740 Ich bin mir nicht sicher, da es eine Vielzahl von Möglichkeiten / Pfaden gibt, um dieses Problem zu lösen. Die Schritte, die ich hier beschrieben habe, haben es in meiner Umgebung gelöst, die sich meiner Meinung nach von Ihrer unterscheidet.
Leniel Maccaferri
8

In meinem Fall hat eine vorherige Ausführung meiner App von VS die URL reserviert. Ich konnte dies sehen, indem ich in einer Konsole lief:

netsh http show urlacl

Um diese Reservierung zu löschen, habe ich dies in einer erhöhten Konsole ausgeführt:

netsh http delete urlacl http://127.0.0.1:10002/

Ich habe festgestellt, dass diese Schritte hier mein Problem gelöst haben.

Ich benutze VS2013

BillDarcy
quelle
Dies ist sehr praktisch, wenn Sie Ihre applicationhost.config jemals so bearbeitet haben, dass eine Site an mehreren Ports gleichzeitig ausgeführt wird. Durch das Entfernen der Einträge aus der .config werden keine Reservierungen in netsh entfernt. Danke, Mann.
Dusda
5

Ich musste Visual Studio ausführen Administrative Mode, um diesen Fehler zu beheben.

Serj Sagan
quelle
3

Ich hatte auch das gleiche Problem und konnte es endlich überwinden.

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

Ich habe eine andere Portnummer gewählt und alles wurde gut!

Frogatto
quelle
1

Keiner der oben genannten hatte für mich gearbeitet. Das hatte vor heute für mich funktioniert. Dann wurde mir klar, dass ich mit dem Erstellen einer gehosteten Verbindung auf meinem Laptop gearbeitet und eine Internetverbindung mit meiner drahtlosen Netzwerkverbindung freigegeben hatte.

So beheben Sie mein Problem:

Gehen Sie zu Systemsteuerung> Netzwerk und Internet> Netzwerkverbindungen

Klicken Sie mit der rechten Maustaste auf eine sekundäre drahtlose Netzwerkverbindung (meine wurde als drahtlose Netzwerkverbindung 2 bezeichnet) und klicken Sie auf "Eigenschaften".

Gehen Sie oben zur Registerkarte "Freigabe".

Deaktivieren Sie das Kontrollkästchen "Anderen Netzwerkbenutzern erlauben, über die Internetverbindung dieses Computers eine Verbindung herzustellen".

Klicken Sie auf OK> und dann auf Übernehmen.

Hoffe das hilft!

Ryan C.
quelle
1

Ich habe meine Datei web.config geöffnet und diesen Abschnitt gefunden und entfernt:

<authorization>
  <deny users="?" />
</authorization>

und meine Seite ist aufgetaucht, aber es gibt Probleme mit der Authentifizierung.

kfn
quelle
Okay, es hat geholfen, das Problem zu beheben, aber jetzt habe ich einige andere Probleme, die ich beheben muss.
Jamshaid Kamran
0

Ich habe gerade dieses genaue Problem in IIS EXPRESS behoben, indem ich die .config des Anwendungshosts in dem unten angegebenen Speicherortabschnitt bearbeitet habe. Ich hatte die Windows-Authentifizierung in Visual Studio 2012 festgelegt, aber als ich in das XML ging, sah es so aus.

Das Windows-Auth-Tag musste wie gezeigt unten hinzugefügt werden.

<windowsAuthentication enabled="true" />

<location path="MyApplicationbeingDebugged">
        ``<system.webServer>
            <security>
                <authentication>
                    <anonymousAuthentication enabled="false" />
                    <!-- INSERT TAG HERE --> 
                </authentication>
            </security>
        </system.webServer>
</location>
user3507561
quelle
0

Ich habe mit diesem Problem zu kämpfen und versucht, mithilfe von Provider Hosted eine einfache App für SharePoint zu erstellen.

Nach dem Durchlaufen der applicationhost.config im Abschnitt wurde basicAuthentication auf false gesetzt. Ich habe es in true geändert, um in meinem Szenario die 401.2 zu überwinden. Es gibt viele andere Links zum Auffinden der applicationhost.config für IIS Express.

kfrosty
quelle
0

Ich habe diese "vollständige" Antwort nirgendwo gesehen; Ich habe gerade die über das Ändern von Portnummern gesehen, nachdem ich dies gepostet habe, also meh.

Stellen Sie sicher, dass in Ihren Projekteigenschaften in Visual Studio diese Projekt-URL nicht derselben URL oder demselben Port zugewiesen ist, die in IIS für Site-Bindungen verwendet werden.

Ich suche das "Warum" dafür, aber ich gehe davon aus, dass sowohl IIS als auch Visual Studios IIS Express beim Erstellen virtueller Verzeichnisse dasselbe Verzeichnis verwenden und Visual Studio nur neue virtuelle Verzeichnisse erstellen und nicht ändern kann Alles, was IIS erstellt hat, wenn es seine Bindungen auf die Site anwendet.

Fühlen Sie sich frei, mich über das Warum zu korrigieren.

user1040975
quelle
0

Unsere Fehlerseite befand sich hinter der Anmeldeseite, aber die Anmeldeseite hatte einen Fehler in einem der Steuerelemente, wodurch eine Endlosschleife erstellt wurde.

Wir haben alle Steuerelemente von der betreffenden Seite entfernt und sie nacheinander wieder hinzugefügt, bis das richtige Steuerelement gefunden und repariert wurde.

Atron Seige
quelle
0

In meinem Fall (ASP.NET MVC 4-Anwendung) Global.asaxfehlte die Datei. Es wurde im Solution Explorer mit einem Ausrufezeichen angezeigt. Ich habe es ersetzt und der Fehler ist verschwunden.

Moses Machua
quelle