2016-03-31 16 views
1

Ich habe leeres Projekt asp.net 5 in Visual Studio 2015Warum bin Ordner nicht in wwwroot in meinem Projekt existiert?

hier, wie es aussieht:

enter image description here

Wie ich von einigen Tutorials die Binärordner sein müssen innerhalb wwwroot verstehen.

Aber es gibt keine ist innen wwwroot und auch sind Ordner existieren nicht überall in Sensor Observation Projekt.

Eine Idee, warum bin Ordner nicht in wwwroot in meinem Projekt existiert?

+0

Ich vermute diese Tutorials auf den Stammordner ASP.NET 4 und früher, nicht ASP.NET 5. Es gibt keine 'wwwroot'-Ordner vor ASP.NET 5 –

Antwort

3

Der Ordner wwwroot dient als Speicherort für statische Dateien (z. B. css, Bilder, JavaScript usw.). Dateien im Ordner bin sollten niemals an den Client (z. B. Browser) gesendet werden, daher sollte er nicht in den Ordner wwwroot gehen.

Here is some more information auf, was die wwwroot enthalten sollte. Im Wesentlichen:

„Geben Sie die Wwwroot-Ordner in ASP.NET 5. Der wwwroot Ordner die eigentliche Wurzel des Web-App stellt, wenn sie auf einem Web-Server Statische Dateien, wie appsettings.json ausgeführt wird, die es nicht ist. in wwwroot wird nie zugänglich sein, und es gibt keine Notwendigkeit, spezielle Regeln zu blockieren den Zugriff auf sensible Dateien.Nicht Blacklisting Zugriff auf sensible Dateien , eine sicherere Whitelist-Ansatz genommen wird, wobei nur diese Dateien in der wwwroot Ordner sind über Web Anfragen erreichbar. "

+0

Aber wo ist mein bin sollte? Zum Beispiel, wenn ich brauche Um Dateien von der Entwicklung in die Produktion zu verschieben, muss ich Dateien aus dem Bin verschieben. Aber ich finde keine Bin in meinem Projekt. – Michael

+0

@Michael: Sie müssen "dnx publish" verwenden, dann das Ergebnis davon in IIS bereitstellen und eine neue Anwendung in IIS erstellen, die auf den Ordner "wwwroot" zeigt – Tseng

+1

Bitte verweisen Sie auf die ASP.NET-Dokumentation https: // docs .asp.net/de/latest/publishing/iis.html für eine Schritt-für-Schritt-Anleitung – Tseng

2

Der Ordner wwwroot/bin enthält nur eine einzige Datei AspNet.Loader.dll. Die AspNet.Loader.dll wurde/wird von IIS verwendet, um die Anwendung zu laden (die sich außerhalb des Ordners wwwroot befindet).

Der Grund dafür ist eine Erhöhung der Sicherheit. Mit ASP.NET Core 1.0 zeigen Sie den Anwendungseintrag nicht auf den Ordner (der alle * .cs-Dateien in ASP.NET 4.5 enthielt), sondern Sie verweisen auf den Ordner wwwroot Ihrer Anwendung.

Jetzt IIS haben keinen Zugriff auf die eigentlichen Anwendungsdateien (und erlauben durch zufälligen Zugriff auf möglicherweise sensible Dateien). So wird die AspNet.Loader.dll benötigt, um Ihre Anwendung auszuführen.

Ansonsten gibt es keine anderen Binärdateien in wwwroot/bin noch sollte es andere geben.

Update:

Dies war früher erforderlich werden für Helios innerhalb IIS ausgeführt/gehostet werden. Helios has been deprecated mit beta8, weil es keinen Sinn machte, zwei verschiedene Server zu entwickeln. So wird wwwroot/bin für neuere Versionen von ASP.NET Core immer leer sein. Wenn Sie Posts oder Referenzen gefunden haben, verweisen diese höchstwahrscheinlich auf eine alte Beta.

Jetzt Kestrel, IIS über HttpPlatformhandler (bis zu rc1-final Version und ASP.NET Core Module mit RC2 und neuer) und Selbst Hosting über HttpListener werden die Lauf Modi unterstützt. Allerdings kann man Kestrel auch hinter einem IIS verwenden.

Verwandte Themen