我有一个 ASP.net 网站,允许用户将文件上传到服务器上的上传文件夹。该网站由 IIS 7 提供服务。
我已将上传文件夹配置为不执行任何请求的脚本文件,但如何配置 IIS 7 来为这些文件提供便利,就像仅为该文件夹提供任何其他静态文件一样?
谢谢
编辑
以下是我的上传文件夹的处理程序映射中的内容:
这是该文件夹的 web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers accessPolicy="Read">
<remove name="TRACEVerbHandler" />
<remove name="OPTIONSVerbHandler" />
<remove name="SimpleHandlerFactory-Integrated" />
<remove name="SSINC-shtml" />
<remove name="ScriptHandlerFactory" />
<remove name="SimpleHandlerFactory-ISAPI-2.0" />
<remove name="HttpRemotingHandlerFactory-soap-Integrated" />
<remove name="AXD-ISAPI-2.0" />
<remove name="ASPClassic" />
<remove name="AssemblyResourceLoader-Integrated" />
<remove name="HttpRemotingHandlerFactory-rem-Integrated" />
<remove name="PageHandlerFactory-Integrated" />
<remove name="ScriptResource" />
<remove name="SSINC-shtm" />
<remove name="WebServiceHandlerFactory-ISAPI-2.0" />
<remove name="SSINC-stm" />
<remove name="ISAPI-dll" />
<remove name="PageHandlerFactory-ISAPI-2.0" />
<remove name="ScriptHandlerFactoryAppServices" />
<remove name="SecurityCertificate" />
<remove name="TraceHandler-Integrated" />
<remove name="UrlRoutingHandler" />
<remove name="WebAdminHandler-Integrated" />
<remove name="MvcHttpHandler" />
<remove name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" />
<remove name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" />
<remove name="CGI-exe" />
</handlers>
</system.webServer>
</configuration>
如果我请求上传文件夹中的 aspx 文件,则会得到以下结果:
服务器错误 404 - 未找到文件或目录。您正在寻找的资源可能已被删除、名称已更改或暂时不可用。
答案1
我必须为我想要提供的文件添加一个 MIME 类型。
我使用 * 将未知文件类型作为应用程序/八位字节流来提供。
答案2
您可能需要此目录中的 web.config 文件取消所有处理程序的映射并将“*”映射到静态:
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />