Подтвердить что ты не робот

ASP.NET MVC Routing vs. Зарезервированные имена файлов в Windows

В нашем приложении ASP.NET MVC мы заметили, что мы не можем иметь имена файлов запрещенных файлов DOS — COM1 через COM9, LPT1 через LPT9, CON, AUX, PRN и NUL в любом месте на наших маршрутах. Они неизбежно приводят к тому, что IIS говорит нам, что файл не может быть найден, даже если мы установили маршрутизацию, чтобы не проверять наличие файлов в первую очередь. Как мы можем обойти это?

4b9b3361

Ответ 1

Это было рассмотрено в ASP.NET 4. http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx

Вы можете применить настройку в web.config, которая ослабляет это ограничение.

<configuration>
  <system.web>
    <httpRuntime relaxedUrlToFileSystemMapping="true"/>

    <!-- ... your other settings ... -->
  </system.web>
</configuration>

Надеюсь, что это поможет.

Ответ 2

Спрашивая вопрос, я обнаружил, что ошибка находится в ASP.NET, а не в IIS или ASP.NET MVC, что означает, что нет возможности обойти это. Единственное решение - вручную запретить URL-адреса, соответствующие этим именам, и эти имена, за которыми следуют временные и случайные символы.