У меня есть веб-сайт 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 - файл или каталог не найдены. Ресурс, который вы ищете, возможно, был удален, изменилось его название или временно недоступен.
Мне пришлось добавить MIME-тип для файла, который я хочу обслуживать.
Я использовал * для обслуживания файлов неизвестных типов как application / octet-stream.
Вероятно, вам понадобится файл web.config в этом каталоге, который отменяет сопоставление всех обработчиков и отображает "*" на static:
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />