2015-12-27 4 views
7

In ASP.NET 5 ändert sich Configuration drastisch. Wir haben keine web.config Datei mehr. Stattdessen können wir JSON und andere Optionen verwenden, je nachdem, wie wir es in unserer Klasse Startup eingerichtet haben. Im Gegensatz zu web.config geht diese Konfiguration normalerweise nicht in wwwroot, und es besteht keine Gefahr, dass Clients darauf zugreifen können.Warum brauchen wir web.config in ASP .NET 5 wwwroot?

Und doch, in den ASP .NET 5 Projektvorlagen gibt es eine web.config Datei in wwwroot mit folgendem Inhalt:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.webServer> 
    <handlers> 
     <add name="httpPlatformHandler" path="*" verb="*" modules="httpPlatformHandler" resourceType="Unspecified"/> 
    </handlers> 
    <httpPlatform processPath="%DNX_PATH%" arguments="%DNX_ARGS%" stdoutLogEnabled="false" startupTimeLimit="3600"/> 
    </system.webServer> 
</configuration> 

Es scheint mir, dass dies etwas sein könnte, dass der Hosting-Server sucht an Laufzeit, unabhängig von der Anwendungskonfiguration.

Kann jemand etwas Licht auf warum dies benötigt wird, und wie es funktioniert?

+0

Wird das noch benötigt? –

+0

Ja, Sie benötigen immer noch web.config, wenn Sie ASP .NET Core in IIS hosten, obwohl sich der tatsächliche Inhalt der Konfigurationsdatei möglicherweise geändert hat. – Gigi

+0

Ich habe die Datei web.config nicht im Ordner wwwroot /. Ich fragte mich nur, ob ich sowohl die normale web.config, die das AspNetCore IIS-Modul UND die oben gezeigte, die in der wwwroot ist. –

Antwort

14

Web.config ist ausschließlich für IIS-Konfiguration. Es wird nicht benötigt, es sei denn, es wird in IIS gehostet. Es wird nicht verwendet, wenn Sie die App über die Befehlszeile ausführen.

In der Vergangenheit wurde Web.config sowohl für die IIS-Konfiguration als auch für die Anwendungskonfiguration und -einstellungen verwendet. Aber in asp.net 5 wird es von der Anwendung überhaupt nicht verwendet, es wird nur für die IIS-Konfiguration verwendet.

Diese Entkopplung der Anwendung von IIS ist Teil dessen, was Cross-Plattform ermöglicht.

+1

Beachten Sie, dass ab ASP.NET Core RTM die Datei web.config (die immer noch nur für IIS verfügbar ist) nicht mehr in den Ordner wwwroot, sondern in den Stamm der Anwendung außerhalb von wwwroot verschoben wird. –

1

ich die gleiche Sache wundere mich, ich weiß, Joe Audette schon die Frage beantwortet, aber nach einer wenig Forschung fand ich diesen Artikel, den andere nützlich sein könnte: http://shazwazza.com/post/aspnet-5-re-learning-a-few-things-part-1/

„Wenn Sie IIS verwenden, gibt es noch können sei eine web.config, mit der IIS-Einstellungen im Bereich system.webserver konfiguriert werden können. "