Wo befindet sich die IIS Express-Konfigurations- / Metabasisdatei?

315

Wo befindet sich die IIS Express-Konfigurations- / Metabasisdatei?

Myster
quelle

Antworten:

548

Die Konfigurationsdatei heißt applicationhost.config . Es ist hier gespeichert:

Eigene Dateien> IIS Express> Konfiguration

Normalerweise, aber nicht immer, funktioniert einer dieser Pfade

%userprofile%\documents\iisexpress\config\applicationhost.config
%userprofile%\my documents\iisexpress\config\applicationhost.config

Update für VS2019
Wenn Sie Visual Studio 2019+ verwenden, überprüfen Sie diesen Pfad:

$(solutionDir)\.vs\{projectName}\config\applicationhost.config

Update für VS2015 (Kredit: @Talon)
Wenn Sie Visual Studio 2015-2017 verwenden, überprüfen Sie diesen Pfad:

$(solutionDir)\.vs\config\applicationhost.config

In Visual Studio 2015+ können Sie auch konfigurieren, welche Datei applicationhost.config verwendet wird, indem Sie die <UseGlobalApplicationHostFile>true|false</UseGlobalApplicationHostFile>Einstellung in der Projektdatei ändern (z. B. MyProject.csproj). (Quelle: MSDN-Forum )

Myster
quelle
4
VS2015-Projekte können auch eine globale Konfigurationsdatei verwenden. Es gibt eine Projekteinstellung, die es steuert und die Sie möglicherweise hinzufügen.
Lex Li
5
Du rettest meinen Tag. Ich habe ASP.NET 5 (vNext) in sln eingeführt, dann wird das ASP.NET 4.5-Webprojekt nicht ausgeführt, aber ich beschwere mich, dass der Prozess nicht ausgeführt wird. Nach dem Entfernen des .vs-Ordners zusammen mit $ (solutionDir) \. Vs \ config \ applicationhost.config funktionieren die Dinge wieder. :)
ZZZ
1
Als Referenz der Befehl zum Starten von IIS Express gemäß Dokumentation ) : > iisexpress /config:config-file /site:site-name, wo config-fileist ein vollständiger Pfad zu applicationhost.config. Siehe auch Antwort von @CosCallis über den einfachsten Weg, diesen Pfad zu erhalten. site-namesollte mit einem der Namen im <sites>Abschnitt von übereinstimmen applicationhost.config.
Alex Fainshtein
Wenn Sie Protokolle während der Entwicklung deaktivieren <siteDefaults> <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" enabled="false"/> <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="false" maxLogFileSizeKB="1024" /> </siteDefaults>
möchten,
Vielen Dank, dass Sie auf das Update für VS2019 hingewiesen haben. Wurde migriert und fragte sich, warum meine Konfigurationsdatei das Verhalten von IIS Express nicht geändert hat.
Grimm
95

Seit der Einführung von Visual Studio 2015 hat sich dieser Speicherort geändert und wird unter dem folgenden Speicherort zu Ihrem Lösungsstamm hinzugefügt:

C:\<Path\To\Solution>\.vs\config\applicationhost.config

Ich hoffe das spart dir etwas Zeit!

Talon
quelle
1
Nachdem Sie dies erkannt haben, sieht es so aus, als würde die Konfiguration im Ordner "Eigene Dateien" tatsächlich als Vorlage verwendet, die verwendet wird, wenn Sie ein neues Projekt einrichten und es in IIS Express ausführen. Sie müssen das Original noch dort aufbewahren, wo es sich befindet, soweit ich das beurteilen kann. Wenn Sie jedoch den Speicherort der Protokolle für alle neuen Projekte ändern möchten, können Sie diese Datei aktualisieren, um sie an einen anderen Ort zu verschieben
Dan Harris
89

Für VS 2015 und VS 2017 : Klicken Sie mit der rechten Maustaste auf das IIS Express-Taskleistensymbol (wenn Sie die Anwendung ausführen) und wählen Sie "Alle Anwendungen anzeigen":

Das Kontextmenü für das IIS Express-Taskleistensymbol mit der hervorgehobenen Alternative "Alle Anwendungen anzeigen"

Wählen Sie dann die entsprechende Anwendung aus und klicken Sie auf den Dateipfad applicationhost.config:

Dialogfeld mit der Website von arbritrary und dem zugehörigen Dateipfad applicationhost.config

Cos Callis
quelle
3
Da dies die Antwort ist, die Sie jedes Mal definitiv auf den richtigen Weg bringt, sollte dies die akzeptierte Antwort sein.
Lewis Cianci
@ cos-callis Ist das Verhalten der IIS Express-Taskleiste in Bezug auf Ihre Bearbeitung wirklich von Visual Studio abhängig?
@ BjörnAliGöransson Da kein VS 2013-System in Betrieb ist, kann ich nicht ohne weiteres zurückgehen und überprüfen, aber ich weiß, dass dies auf VS 2015/17 funktioniert, und ich weiß, dass sich die Konfigurationsdaten vor 2015 befanden anders. So sehr ich auch häufig frustriert bin von Fragen und Antworten, die bei einer Suche auftauchen, bei der die "akzeptierte" Antwort uralt und veraltet ist. Daher war es mir wert, hinzuzufügen, dass "ab heute" Ihre Antwort 2015/17 gültig ist '... keine Versprechungen, ob es in VS 2019 +++ wahr sein wird oder nicht :)
Cos Callis
Ich verstehe, aber ich denke, dass IIS Express mit / zur gleichen Zeit wie VS 2012 veröffentlicht wurde, davor gab es nur Cassini - IIRC ???
Schauen Sie sich dieses Stück Geschichte ab 2011 an: abhijitjana.net/2011/08/05/… "Visual Studio 2010 SP1 bietet vollständige Integration mit IIS Express"
50

Um den Kreis zu schließen und alle Versionen von Visual Studio einzuschließen , gab @Myster ursprünglich Folgendes an:

Vor Visual Studio 2015 lauteten die Pfade zu applicationhost.config:

%userprofile%\documents\iisexpress\config\applicationhost.config
%userprofile%\my documents\iisexpress\config\applicationhost.config

Der Pfad für Visual Studio 2015/2017 finden Sie unter: ( Bildnachweis: @Talon )

$(solutionDir)\.vs\config\applicationhost.config

Der Pfad zu Visual Studio 2019 finden Sie unter: ( Bildnachweis: @Talon )

$(solutionDir)\.vs\config\$(ProjectName)\applicationhost.config

Aber der Teil, der einige Leute dazu bringen könnte, ist, dass die Projekteinstellungen in der SLN-Datei die applicationhost.config für Visual Studio 2015+ neu füllen können . ( Gutschrift: @Lex Li )

Wenn Sie also eine Änderung in der applicationhost.config vornehmen, müssen Sie auch sicherstellen, dass Ihre Änderungen hier übereinstimmen:

$(solutionDir)\ProjectName.sln

Die beiden wichtigen Einstellungen sollten folgendermaßen aussehen:

Project("{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}") = "ProjectName", "ProjectPath\", "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"

und

VWDPort = "Port#"

Wichtig hierbei ist, dass die beiden Einstellungen in der .sln-Datei mit dem Namen bzw. der Bindungsinformation in der Datei applicationhost.config übereinstimmen müssen, wenn Sie Änderungen vornehmen möchten. Möglicherweise gibt es mehr Stellen, die diese beiden Dateien verknüpfen, und ich werde sie aktualisieren, wenn ich mehr Links entweder durch Kommentare oder durch mehr Erfahrung finde.

Joe
quelle
2

Für Visual Studio 2019 (v16.2.4) konnte ich diese Datei nur hier finden:

C: \ Benutzer \\ Dokumente \ IISExpress \ config \ applicationhost.config applicationhost.config

Ich hoffe, dies hilft, da ich den Speicherort des .vs-Ordners nicht finden konnte, wie in den obigen Vorschlägen erwähnt.

RichieMN
quelle
Dies entspricht dem ersten Vorschlag von %userprofile%\documents\iisexpress\config\applicationhost.config. Wenn Sie jedoch über Visual Studio laufen, würde ich erwarten, dass es das im .vs-Verzeichnis verwendet.
Myster
0

Ich denke, alle Antworten hier sind relevant. Wenn Sie jedoch wie ich suchen, woher Visual Studio die Vorlage bezieht, wenn eine neue Version der applicationHost.config erstellt wird, können Sie hier nachsehen:

C:\Program Files (x86)\IIS Express\config\templates\PersonalWebServer

Dies passiert häufig, wenn Sie häufig an mehreren Zweigen desselben Projekts arbeiten und in vielen von ihnen auf "Debuggen" klicken. Wenn Sie hier eine Bearbeitung vornehmen, wird sichergestellt, dass die Bearbeitung auf alle neuen Projekt- / Lösungsordner übertragen wird, die erstellt werden.

Die Antwort kam indirekt aus dieser Antwort

Phil Morris
quelle