2015-12-27 16 views
7

W środowisku ASP .NET 5, Configuration zmienia się drastycznie. Nie mamy już pliku web.config. Zamiast tego możemy użyć JSON i innych opcji, w zależności od tego, jak ustawiamy rzeczy w naszej klasie Startup. W przeciwieństwie do web.config, taka konfiguracja zwykle nie wchodzi w zakres wwwroot i nie ma niebezpieczeństwa, że ​​klienci będą mogli uzyskać do niej dostęp.Dlaczego potrzebujemy web.config w ASP .NET 5 wwwroot?

A jednak, w ASP .NET 5 szablonów projektowych istnieje plik web.config w wwwroot o następującej treści:

<?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> 

Wydaje mi się, że może to być coś, że serwer hosting szuka na runtime, niezależnie od konfiguracji aplikacji.

Czy ktoś może rzucić trochę światła na to, dlaczego jest to potrzebne i jak to działa?

+0

Czy nadal jest to potrzebne? –

+0

Tak, nadal potrzebujesz web.config, jeśli hostujesz ASP .NET Core w IIS, chociaż rzeczywista zawartość pliku konfiguracyjnego mogła ulec zmianie. – Gigi

+0

Mam plik web.config nie w folderze wwwroot /. Zastanawiałem się, czy potrzebuję zarówno zwykłego pliku web.config, który ma moduł AspNetCore IIS, jak i powyższego, który znajduje się na wwwroot. –

Odpowiedz

14

Web.config służy wyłącznie do konfiguracji IIS. Nie jest potrzebne, chyba że hosting w IIS. Nie jest używany, gdy uruchamiasz aplikację z wiersza poleceń.

W przeszłości Web.config był używany zarówno do konfiguracji IIS oraz konfiguracji i ustawień aplikacji. Ale w asp.net 5 nie jest w ogóle używany przez aplikację, jest używany tylko do konfiguracji IIS.

To oddzielenie aplikacji od usług IIS jest częścią tego, co czyni platformę crossową możliwą.

+1

Zauważ, że od wersji ASP.NET Core RTM plik web.config (który nadal jest dostępny tylko dla IIS) nie trafia już do folderu wwwroot, ale trafia do katalogu głównego aplikacji poza wwwroot. –

1

zastanawiałem się to samo, wiem, Joe Audette już odpowiedział na pytanie, ale po wykonaniu trochę badań znalazłem ten artykuł, że inni mogą się przydać: http://shazwazza.com/post/aspnet-5-re-learning-a-few-things-part-1/

„Jeśli używasz IIS, nie może nadal be a web.config, który może być użyty do skonfigurowania ustawień IIS w sekcji system.webserver. "