Мы обслуживаем файлы для нашего собственного приложения для загрузки с веб-серверов, включая IIS. Один такой файл имеет .config
расширение. Оказывается, IIS не обслуживает это, потому что считает, что это отдельный файл конфигурации. Я подумываю использовать просто .configuration
вместо. Это будет нормально? Есть ли список «запрещенных» расширений для обслуживания из IIS?
Да, есть список блокируемых расширений, который называется Фильтрация запросов, вы можете запустить: appcmd list config -section: system.webServer / security / requestFiltering, вы увидите что-то вроде: ... ...
на моем компьютере с Windows 7 список включает:
.asa, .asax, .ascx, .master, .skin, .browser, .sitemap, .config, .cs,
.csproj, .vb, .vbproj, .webinfo, .licx, .resx, .resources, .mdb, .vjsproj,
.java, .jsl, .ldb, .dsdgm, .ssdgm, .lsad, .ssmap, .cd, .dsprototype,
.lsaprototype, .sdm, .sdmDocument, .mdf, .ldf, .ad, .dd, .ldd, .sd,
.adprototype, .lddprototype, .exclude, .refresh, .compiled, .msgx, .vsdisco.
Обратите внимание, что вы также можете в своем приложении указать дополнительные расширения или разрешить другие расширения, которые в противном случае не могли бы быть разрешены, используя web.config внутри вашей папки.
Предупреждение не делайте этого, поскольку файлы .config могут содержать конфиденциальную информацию.
Например, если вы поместите в свое приложение файл web.config со следующим содержимым, это позволит пользователям загружать файлы .config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension=".config" />
</fileExtensions>
</requestFiltering>
</security>
</system.webServer>
</configuration>
Для получения дополнительной информации см .: http://www.iis.net/configReference/system.webServer/security/requestFiltering
Наконец, если вы собираетесь использовать какое-то случайное расширение, вам нужно убедиться, что IIS также знает, какой тип mime использовать, и знает расширение, которое вы будете использовать, если хотите разрешить загрузку статических файлов, и это должно быть внутри Раздел staticContent (appcmd list config -section: system.webServer / staticContent). Вы также можете настроить это внутри web.config, как указано выше.
Вы можете просто заархивировать все свои файлы, после чего вы сможете использовать любое расширение, которое захотите.