近期做一个程序自动更新工具,当做到文件下载时发现IIS出于安全考虑对部分文件类型如:.config、.ini 等做了下载限制。
解决这个限制可以通过以下几个步骤处理:
一、在MIME类型中设置允许下载的文件类型
二、设置当前网站允许下载的文件类型(注意:如果找不到“请求筛选”,就跳到下面的“三、改写Web.config”)
经过上面的两个设置,IIS会对网站配置文件(Web.Config)的文件加入下面的代码:
经过上面两步的设置,文件的下载限制被解除了。
三、改写Web.config(相当于手工完成上面的两个步骤,不是必要的)
直接打开网站配置文件Web.config,加入下面的代码:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true" />
<!--
若要在调试过程中浏览 Web 应用程序根目录,请将下面的值设置为 True。
在部署之前将该值设置为 False 可避免泄露 Web 应用程序文件夹信息。
-->
<directoryBrowse enabled="false" />
<!-- 请求筛选,下面的设置告诉IIS取消扩展名的限制 -->
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension=".config" />
<add fileExtension=".config" allowed="true" />
</fileExtensions>
</requestFiltering>
</security>
<!-- MIME类型, 下面的设置告诉IIS取消扩展名的限制 -->
<staticContent>
<mimeMap fileExtension=".config" mimeType="SmartSoft/配置文件" />
</staticContent>
</system.webServer>
注意:
1. Web.config这个文件不能下载。经过上面的设置也不能改变被禁止下载的扼运,估计是IIS写死了;
2.曾偿试用上面的方法对网站下面的子目录的Web.config(想将影响范围减到最小)但没有成功。
(完)