web-dev-qa-db-ger.com

HTTP-Fehler 500.19 - Konfigurationsdatei kann nicht gelesen werden

In einer meiner ASP.NET-Apps kann ich es aufgrund eines Fehlers, der unten angezeigt wird, plötzlich nicht in Visual Studio 2013 ausführen. Es scheint, dass versucht wird, die web.config von einem Pfad aus zu öffnen, der nicht einmal existiert. Mein gesamter Projektcode, einschließlich web.config, befindet sich unter C:\Projects\SourceCode\AFEManager\Trunk\AFEManager.Web. Ich habe hier eine Anzahl von Beiträgen von Nutzern gefunden, die einen ähnlichen Fehler hatten, aber die Lösungen scheinen sich zu unterscheiden und keiner, den ich bisher gefunden habe, scheint auf meine Situation zutreffend zu sein. Ich habe in diesem TraceLogFiles-Verzeichnis nachgeschaut, und die letzte Protokolldatei dort ist fünf Tage alt, so dass offensichtlich nichts protokolliert wurde, seit ich dieses Problem habe. Anregungen sind willkommen.

enter image description here

21
PongGod

In meinem Fall habe ich alle Ordner in D:\Eigene Dateien\Meine Websites\vor ___ gelöscht. Dann habe ich den Fehler ___ festgestellt. In meinem Lösungsordner __. befindet sich eine Datei .vs\config\applicationhost.config enthält einen Verweis auf den gelöschten Ordner. Also löschte ich applicationhost.config und drückte dann auf die Schaltfläche "Create Virtual Directory" in der Projekteigenschaftsseite. Es wurde die Datei und der Ordner neu erstellt

20
MirrorBoy

Ich konnte dieses Problem lösen, obwohl ich nicht sagen kann, dass ich alle Details vollständig verstanden habe. Ich werde versuchen, die Situation so gut zu beschreiben, wie ich sie verstehe, und hoffentlich können andere, die über mehr Einblick verfügen, weitere Klarstellungen treffen.

Nachdem ich meine gesamte Entwicklung auf meiner Workstation durchgeführt hatte, wurde vorgeschlagen, dass ich diese Arbeit in einer neuen VM Umgebung beginnen sollte, die für mich eingerichtet wurde. Also habe ich dort VS 2013 installiert und dort meinen Quellcode aus verschiedenen Projekten kopiert. Anstatt meiner vorherigen lokalen Pfadkonvention von C:\Projects\SourceCode [ProjectName] zu folgen ... entschied ich mich diesmal jedoch für die Verzeichnisse, die während der VS-Installation eingerichtet wurden: c:\users [MyUser]\My Documents\Visual Studio 2013\Projekte [Projektname]. Kurze Zeit später nahm unser Infrastruktur-Team eine Änderung vor, sodass mein Home-Verzeichnis c:\users\rmayer jetzt auf ein gemeinsames Netzlaufwerk,\totalsafety\TSUsers\rmayer, verweist. Alles lief ohne Probleme weiter.

Aufgrund verschiedener Schwierigkeiten, die ich in dieser Umgebung VM hatte, entschied ich mich jedoch, meine Entwicklungsarbeit auf meiner Workstation mit den ursprünglichen lokalen Pfaden für meinen Quellcode fortzusetzen. Dies ist der Zeitpunkt, an dem ich auf die oben beschriebenen Fehler gestoßen bin, wenn ich versuche, meinen Code über VS auszuführen. Was ich angefangen habe zu lernen, ist, dass es eine applicationhost.config -Datei gibt, die IIS = Express verwendet, die sich hier befindet:\totalsafety\TSUsers\rmayer\Eigene Dateien\IISExpress\config. Es enthält Einträge für jedes meiner Webprojekte. Der für dieses Problem relevante Abschnitt enthielt einen Abschnitt, der folgendermaßen aussah:

        <site name="AFEManager.Web-Site" id="8">
            <application path="/" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:\Users\rmayer\Documents\My Web Sites\AFEManager.Web-Site" />
            </application>
            <application path="/AFEManager" applicationPool="Clr4IntegratedAppPool">
                <virtualDirectory path="/" physicalPath="C:\Projects\SourceCode\AFEManager\Trunk\AFEManager.Web" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation="*:19257:localhost" />
            </bindings>
        </site>

Das physikalische Pfadattribut, das zu diesem Zeitpunkt unter applicationPool = "Clr4IntegratedAppPool" aufgeführt ist, wurde basierend auf dem lokalen Pfad festgelegt, den ich zu dem Zeitpunkt verwendet hatte, als ich in der Umgebung VM arbeitete. Da diese eine Datei unabhängig davon, ob ich lokal oder innerhalb von VM arbeite, aufgrund der Verschiebung der Benutzerverzeichnisse freigegeben wird, ist dieser Pfad ungültig, wenn ich von meiner Workstation aus arbeite. Durch das Aktualisieren dieses Pfads auf C:\Projects\SourceCode\AFEManager\Trunk\AFEManager.Web funktioniert es jetzt korrekt auf meiner Workstation.

Ich habe wieder ein begrenztes Verständnis dafür, wie dies funktionieren soll, aber ich sage, dass ich keine Entwicklungsarbeit in mehreren Umgebungen durchführen kann (nicht mehr, wenn ich nicht mehr will), es sei denn, die lokalen Pfade sind zwischen allen konsistent von ihnen. Wenn ich recht habe, scheint dies ein nicht ideales Design zu sein.

19
PongGod

Ich habe den virtuellen Verzeichnispfad in vs\config\applicationhost.config im Lösungsordner geändert.

6
Meghna Reddy

Sie können den Pfad für die web.config in ihren tatsächlichen Pfad in der Datei applicationhost.config ändern. Diese Datei befindet sich im Ordner /.vs/config. 

Nachdem Sie den Pfad in dieser Datei geändert haben, speichern Sie ihn und starten Sie das Projekt erneut. Das Problem wurde dadurch behoben. 

Dies geschieht, weil ich verschiedene Arbeitsplätze habe, das Projekt jedoch in verschiedenen Ordnern gespeichert wird.

Dieses Problem hatte ich, als ich den Projektordner auf den neuen Computer verschoben habe. Das Problem ist, dass der VS die Site in seiner Konfigurationsdatei (applicationhost.config) im .vs/-Ordner registriert hat, aber keinen Ordner in %USERPROFILE%\My Documents\My Web Sites\ erstellt hat. Wenn Sie in den Projekteigenschaften (Registerkarte Web) nur auf Virtuelles Verzeichnis erstellen klicken, reicht dies nicht aus. 

  1. Schließen Sie zuerst Ihren VS und entfernen Sie den .vs/-Ordner aus Ihrem Lösungsverzeichnis
  2. Öffnen Sie VS erneut und klicken Sie in den Projekteigenschaften (Registerkarte Web) auf Virtuelles Verzeichnis erstellen. VS registriert die Site erneut und erstellt einen entsprechenden Ordner in %USERPROFILE%\My Documents\My Web Sites\.
2
dzitkowskik

In meinem Fall befand sich das Projekt im Netzwerk und nicht auf meiner lokalen Festplatte. Nachdem das Projekt auf lokal kopiert wurde, wurde das Problem behoben. Hoffe, es kann jemandem Zeit sparen, der das gleiche Problem hat.

2
Amir Chatrbahr

Löschen Sie von Visual Studio erstellte .VS-Ordner. Möglicherweise ist es in Ihrer Projektstruktur verborgen. Blenden Sie die Ordner ein und suchen Sie nach dem Ordner .vs, löschen Sie diesen Ordner und erstellen Sie die Anwendung neu.

1
user3703310

Nach all diesen Antworten finde ich meine Lösung. Löschen Sie die WebSite in IIS und bestätigen Sie. Warum? Weil ich die Website vor der Installation von Framework 4.5 und URL Rewrite erstellt hatte.

0

Hier ist eine Lösung, die ich gefunden habe.

https://gyorgybalassy.wordpress.com/2015/03/06/i-asked-for-a-vs-folder-and-the-vs-team-gave-it-to-me/

(1) Suchen Sie die Datei applicationhost.config in | YourSolution |\.vs\config.

 enter image description here

(2) Ändern Sie den VirtualDirectory PhysicalPath in Ihr Projekt.

(3) Lösung neu starten. Projekt starten.

(4) Wenn es immer noch nicht funktioniert, überprüfen Sie die Einstellung in Ihrer IISExpress-Konfiguration. Wenn keine Site-Einstellung vorhanden ist, kopieren Sie die Einstellung und fügen Sie sie in | UserOnYourComputer |\Documents\IISExpress\config\applicationhost.config ein.

 enter image description here

(5) Ändern Sie die ID in eine andere ID, die nicht in IISExpress applicationhost.config verwendet wird.

(6) Starten Sie Ihr Projekt.

0
Epic Chen

Ich habe das gleiche Problem erlebt und löse es ganz einfach. Mein Problem trat auf, nachdem ich eine Zusammenführungsoperation in git-Repository durchgeführt hatte. Nach der Zusammenführungsoperation in Visual Studio wurde die Standard-Projekt-URL in die Standard-URL des Computers meines Partners geändert, von der er zuletzt in mein Repository verschoben wurde. So habe ich diesen Fehler behoben:

  1. Gehen Sie einfach zu den Eigenschaften des Projekts.
  2. Wählen Sie aus dem links vertikal ausgerichteten Menü Web aus.
  3. Nachdem Sie die URL und ein Textfeld mit der Standardportnummer projiziert haben, befindet sich neben diesem Textfeld eine Schaltfläche "Virtuelles Verzeichnis erstellen".
  4. Drücken Sie diese Taste, und schon geht es weiter ..__ Es zeigt wieder die Standard-URL des aktuellen Arbeitsordners Ihres Projekts.

Hoffe es funktioniert für euch alle :) 

0
Hassaan Baig

Danke, PongGod !! Ich kann Ihre Antwort nicht kommentieren, aber ich wollte trotzdem posten, da ich beim Ausführen einer Instanz von Orchard genau das gleiche Problem hatte. In meinem Fall lief alles gut, bis ich ein paar alte Projektdateien gefunden habe:

%USERPROFILE%\My Documents\My Web Sites\

Und fing an, sie ohne ersichtlichen Grund zu löschen. Ich habe dann versucht, Orchard von Visual Studio im Debug-Modus zu starten, und ich habe die obige Fehlermeldung erhalten. Nachdem Sie dasselbe Update auf meine Datei applicationhost.config angewendet haben, funktioniert jetzt alles einwandfrei.

In meinem Fall gehe ich davon aus, dass die Verzeichnisse durcheinander geraten waren, weil ich ursprünglich die Standard-Orchard-Dateien von Visual Studio und von Web Matrix ausgeführt hatte. Später lud ich die vollständigen Quelldateien herunter und begann, die Dateien in einem völlig anderen Verzeichnis auszuführen. Danke noch einmal.

0
hvaughan3