Промежуточное программное обеспечение UseDirectoryBrowser работает без добавления AddDirectoryBrowser в .NET Core. Активный

#asp.net-core

Вопрос:

Я помещаю app.UseDirectoryBrowser() в свой метод настройки (или так называемое промежуточное программное обеспечение). Ничего больше. Никакого обслуживания. Шаблон по умолчанию / Пустой. Затем я также могу просматривать каталог через Visual Studio, через IIS и через интерфейс командной строки. Так в чем же цель услуг?AddDirectoryBrowser().

Вот ссылка на сайт M/S. https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files?view=aspnetcore-5.0

Где они указывают Включить просмотр каталогов с:

AddDirectoryBrowser при запуске.Услуги по настройке. Используется в браузере при запуске.Конфигурировать. Но я не добавил «AddDirectoryBrowser» и все еще мог просматривать каталог.

Ответ №1:

это действительно странно, как сказано в документах Directory browsing is disabled by default for security reasons . Это означает, что мы не можем просматривать папку статических файлов проекта без включения конфигурации. И не могли бы вы, пожалуйста, предоставить более подробную информацию, такую как версия фреймворка, файл запуска или что-то еще?

Вот мой результат теста, я создал значение по умолчанию asp.net основной проект 3.1 mvc и после добавления services.AddDirectoryBrowser(); , и app.UseDirectoryBrowser(); я могу просматривать свою статическую папку с файлами, но без них я потерпел неудачу. Я протестировал в vs и развернул с помощью iis express.

введите описание изображения здесь
введите описание изображения здесь

Комментарии:

1. Привет @Tiny Wang, Вы прокомментировали приложение. UseDirectoryBrowser из вашего метода настройки. Вот почему это не работает. Меня беспокоит только то, каково использование услуг. AddDirectoryBrowser(). Пожалуйста, постарайтесь комментировать только сервис, а не промежуточное программное обеспечение. Он будет работать без добавления услуг, т. е. сервисов. AddDirectoryBrowser()

2. @AmitRawat Привет, спасибо за ваш ответ, я тестировал судя по вашим высказываниям и это правда, что он по-прежнему без работы services.AddDirectoryBrowser() , и я думаю, что это тоже нормальная ситуация, так как в этом разделе заявил The IServiceCollection so that additional calls can be chained. , что означает, что если вы не вызываете эту услугу в другом месте, это действительно бесполезно, чтобы установить эту строку кода в ConfigureServices

3. И в документе также есть высказывание AddDirectoryBrowser must be called when the EnableDirectoryBrowsing property value is true , и оно действительно работает , когда я комментирую services.AddDirectoryBrowser() , я предполагаю, что оно было включено в службу mvc. Другими словами, я предполагаю, что исходный код services.AddMvc() включает services.AddDirectoryBrowser() в себя .