wake-up-neo.com

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

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

Wie kann das gelöst werden?

Serverfehler in '/' Anwendung.

Der Zugriff wird verweigert . Beschreibung: Beim Zugriff auf die für die Bearbeitung dieser 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: Die Anmeldung ist aufgrund der Serverkonfiguration fehlgeschlagen. Stellen Sie sicher, dass Sie berechtigt sind, dieses Verzeichnis oder diese Seite basierend auf den von Ihnen angegebenen Anmeldeinformationen und den auf dem Webserver aktivierten Authentifizierungsmethoden anzuzeigen. Wenden Sie sich an den Administrator des Webservers, um weitere Unterstützung zu erhalten.

97
Kris-I

Wenn Sie Visual Studio verwenden, können Sie das Projekt in Solution Explorer mit der linken Maustaste anklicken und die Eigenschaft Windows Authentication im Fenster Properties in Enabled ändern. 

103
Jason

Die Ursache für dieses Problem war IIS. Express erlaubte keine Windows-Authentifizierung. Dies kann durch Einstellung aktiviert werden

<windowsAuthentication enabled="true">

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

98
Ant Swift

Ich habe Jasons Antwort verwendet, wollte aber klären, wie ich in Immobilien komme.

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

enter image description here

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

enter image description here

66
Tony L.

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 für Ihr Projekt: a) Setzen Sie "Anonyme Authentifizierung" auf "Deaktiviert" . b) Setzen Sie "Windows-Authentifizierung" auf "Aktiviert".

17
Daniel

In meinem Fall musste ich die Datei öffnen:

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

Ich hatte folgendes in der Datei:

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

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

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

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

Sie können auch einen Blick darauf werfen: https://stackoverflow.com/a/10041779/114029

Nun kann ich wie erwartet auf die Anmeldeseite zugreifen.

12

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

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 diese Schritte hier gefunden, mein Problem gelöst.

Ich verwende VS2013

8
BillDarcy

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

5
Serj Sagan

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

Solution ExplorerRight click on projectPropertiesWeb tabProject Url

Ich habe ein anderes Portnummer gewählt, und alles wurde gut!

3
Hi I'm Frogatto

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

Um mein Problem zu beheben:

Gehen Sie zu Systemsteuerung> Netzwerk und Internet> Netzwerkverbindungen

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

Gehen Sie oben zur Registerkarte "Freigabe".

Deaktivieren Sie das Kontrollkästchen "Andere Netzwerkbenutzer dürfen keine Verbindung über die Internetverbindung dieses Computers herstellen".

Klicken Sie auf OK> und anschließend auf Übernehmen.

Hoffe das hilft!

1
Ryan C

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

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

und meine Website kam auf, aber es gibt Fragen mit der Authentifizierung ..

1
kfn

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 fehlerhaften Seite entfernt und nacheinander hinzugefügt, bis das richtige Steuerelement gefunden und behoben wurde.

0
Atron Seige

Ich habe mit diesem Problem zu kämpfen, als ich versuchte, mit Provider Hosted eine einfache App für SharePoint zu erstellen.

Nachdem Sie die Datei applicationhost.config durchgearbeitet hatten, wurde basicAuthentication auf false gesetzt. Ich habe es in true geändert, um die 401.2 in meinem Szenario zu überwinden. Es gibt viele weitere Links zum Auffinden der applicationhost.config für IIS Express.

0
kfrosty

Ich habe dieses genaue Problem in IIS gerade behoben. EXPRESS hat es behoben, indem die Anwendung Host .config in den für die folgenden spezifischen Speicherort bearbeitet wurde. Ich hatte Windows-Authentifizierung in Visual Studio 2012 festgelegt, aber als ich mich mit XML beschäftigte, sah es so aus. 

das Windows-Auth-Tag muss 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>
0
user3507561

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

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

Ich schaue nach dem "Warum" nach diesem Thema nach, aber ich gehe aus dem Kopf, dass sowohl IIS als auch Visual Studio's IIS express dasselbe Verzeichnis verwenden, wenn Sie virtuelle Verzeichnisse erstellen und Visual Studio kann nur neue virtuelle Verzeichnisse erstellen und kann keine Änderungen vornehmen, die IIS erstellt hat, wenn die Bindungen auf die Site angewendet werden. 

fühlen Sie sich frei, mich auf das Warum zu korrigieren.

0
user1040975