В вашем allow-all
каталоге, вы можете создать файл web.config со следующей конфигурацией:
<configuration>
<system.webServer>
<security>
<requestFiltering>
<fileExtensions>
<remove fileExtension=".cs" />
</fileExtensions>
</requestFiltering>
</security>
<staticContent>
<mimeMap fileExtension=".cs" mimeType="text/plain" />
</staticContent>
</system.webServer>
</configuration>
Эта конфигурация удаляет .cs
расширение из фильтрации запросов. Кроме того, для того, чтобы IIS правильно обслуживал контент, ему нужен MIME-тип, поэтому расширение .cs
добавляется как текст/plain.
Эти изменения также применимы ко всем дочерним каталогам allow-all
. Эта конфигурация работает со встроенным пулом приложений. Классический может потребовать дополнительных изменений, так как есть HTTP-обработчики, которые явно запрещают также .cs.
Это хорошо, но у меня нет пути '/ allow-all' как такового: это динамический URL-адрес, управляемый маршрутизацией ASP.NET MVC. Возможно ли это в этих условиях. –
@Anton Если это динамично, то лучше попробуйте сами их обслуживать - создайте правило перезаписи URL-адресов на какой-то скрипт, который будет читать и отправлять содержимое запрашиваемого файла в браузер. Я просто не уверен, что модуль перезаписи URL выполняется до или после фильтрации запросов - я думаю, что после (для реальных/существующих файлов), но это может быть не для несуществующих URL-адресов. – LazyOne
@LazyOne переписывание URL-адресов, похоже, происходит после фильтрации запроса. Или, по крайней мере, пользовательский обработчик, который я установил, задыхался, пока я не добавил в свои фильтры для рассматриваемого пути. –
jklemmack