Gibt es eine Möglichkeit, ein virtuelles Verzeichnis in IIS Express zu erstellen? Ich weiß, dass Cassini dies nicht kann, und es wäre schön, dies ohne die Verwendung einer Vollversion von IIS tun zu können.
Ich habe es so weit gebracht, dass ich in IIS Express wie folgt lokal zu meiner Anwendung navigieren kann:
Ich möchte ein virtuelles Verzeichnis mit dem Namen "OffSiteStuff" erstellen und es auf eine Position auf meinem C-Laufwerk verweisen, z. B. "c: \ offsitestuff", und dann zu Elementen in diesem Ordner wie folgt navigieren:
http: // localhost: 1132 / OffSiteStuff / UserUploadedImage.jpg
Ich weiß, dass ich dies mit einem Ordner auf meiner Site tun und trotzdem IIS Express oder, was das betrifft, den alten Cassini verwenden kann, aber dieser Ordner speichert Bilder, die von Benutzern hochgeladen wurden, und ich möchte diese Bilder wirklich nicht verwechseln Anwendungsdateien.
Die andere "go big" -Lösung besteht darin, die Site jedes Mal auf einer vollständigen Server 2008 IIS 7.5-Instanz bereitzustellen, wenn ich die Funktionen debuggen möchte, die Offsite-Inhalte verwenden. Dies ist jedoch auch etwas umständlich.
Kann ich dies im <System.WebServer />
Webkonfigurationselement auf irgendeine Weise tun ?
quelle
applicationHost.config
Datei befindet sich im Projektstamm :${PROJECT}\.vs\config\applicationHost.config
.Antworten:
Die IIS Express-Konfiguration wird von applicationhost.config verwaltet.
Sie finden es in
Im Inneren finden Sie den Site-Abschnitt, der einen Abschnitt für jede von IIS Express konfigurierte Site enthält.
Fügen Sie einen Site-Abschnitt wie folgt hinzu (oder ändern Sie ihn):
Praktisch müssen Sie für jedes virtuelle Verzeichnis ein neues Anwendungs-Tag in Ihre Site einfügen. Sie erhalten viel Flexibilität, da Sie unterschiedliche Konfigurationen für das virtuelle Verzeichnis festlegen können (z. B. eine andere .NET Framework-Version).
EDIT Dank Fevzi Apaydın auf eine elegantere Lösung zu zeigen.
Sie können dasselbe Ergebnis erzielen, indem Sie dem Application-Tag ein oder mehrere virtualDirectory-Tags hinzufügen:
Referenz:
quelle
applicationhost.config
geändert. Sinnvoller als frühere Versionen befindet es sich jetzt im.vs\config
Unterordner Ihres Lösungsordners.Der Ansatz von @ Be.St. ist wahr, aber unvollständig. Ich kopiere nur seine Erklärung mit der Korrektur des falschen Teils.
Die IIS Express-Konfiguration wird von applicationhost.config verwaltet.
Sie finden es in
Im Inneren finden Sie den Site-Abschnitt, der einen Abschnitt für jede von IIS Express konfigurierte Site enthält.
Fügen Sie einen Site-Abschnitt wie folgt hinzu (oder ändern Sie ihn):
Anstatt einen neuen Anwendungsblock hinzuzufügen, sollten Sie dem übergeordneten Element der Anwendung einfach ein neues virtualDirectory-Element hinzufügen.
Bearbeiten - Visual Studio 2015
Wenn Sie nach der Datei applicationHost.config suchen und VS2015 verwenden, finden Sie sie in:
quelle
In VS2013 habe ich dies in den folgenden Schritten getan:
1.Klicken Sie mit der rechten Maustaste auf das Webanwendungsprojekt und klicken Sie auf Eigenschaften
2. Zeigen Sie die Registerkarte "Web" auf der Seite "Eigenschaften" an
3. Unter Servern, wobei "IIS Express" die Standardauswahl der Dropdown-Liste ist, ändern Sie in der "Projekt-URL" die URL unter Verwendung der Portnummer in eine für Sie geeignete. Zum Beispiel habe ich die Portnummer gelöscht und "/ MVCDemo4" nach dem localhost hinzugefügt.
4.Klicken Sie auf die Schaltfläche "Virtuelles Verzeichnis erstellen".
5. Führen Sie Ihr Projekt aus und die neue URL wird verwendet
quelle
Wenn Sie Visual Studio 2013 verwenden (möglicherweise ist Pro Edition oder höher erforderlich), konnte ich einer (dateibasierten) IIS Express-Website ein virtuelles Verzeichnis hinzufügen, indem Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Website klicken und auf Hinzufügen> klicken Neues virtuelles Verzeichnis. Dies fügte der Datei applicationhost.config einen Eintrag hinzu, wie bei den hier beschriebenen manuellen Methoden.
quelle
Eine neue Option ist Jexus Manager für IIS Express.
https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/
Es ist nur das Management-Tool, das Sie verwenden können.
quelle
Ich hatte noch etwas anderes, die Dateien selbst waren in einer SBS-Umgebung nicht zugänglich.
Löschen Sie die Dateien im Konfigurationsordner (wenn Sie sie nicht öffnen können!) Und ersetzen Sie sie durch eine Kopie des Ordners auf Ihrem eigenen lokalen PC.
Für mich behoben :)
quelle
Ich musste den Eintrag in der Datei [project] .vs \ config \ applicationhost.config vornehmen.
Zuvor funktionierte es von der Bereitstellung, aber nicht vom Code.
quelle
Als Antwort auf die weitere Frage -
Ich habe nirgendwo eine einheitliche Antwort darauf gefunden, aber dann herausgefunden, dass Sie dies mit einem Post-Build-Ereignis mithilfe der XmlPoke-Aufgabe in der Projektdatei für die Website tun können.
Mit dieser Technik können Sie alles in der Datei neu terminieren, bevor IISExpress gestartet wird. Auf diese Weise können Sie zunächst eine applicationHost.config-Datei in GIT erzwingen (vorausgesetzt, sie wird von gitignore ignoriert) und anschließend alle Pfade zur Erstellungszeit neu zuweisen. GIT ignoriert alle Änderungen an der Datei, sodass Sie sie jetzt problemlos freigeben können.
Als Antwort auf die weitere Frage zum Hinzufügen anderer Anwendungen unter einer Site:
Sie können die Site in Ihrer Anwendungshostsdatei genau wie die auf Ihrem Server erstellen. Beispielsweise:
Verwenden Sie dann die oben beschriebene Technik, um die Ordnerpositionen beim Erstellen zu ändern.
quelle