ASP.NET MVC Маршрутизация против зарезервированных имен файлов в Windows - PullRequest
39 голосов
/ 12 июня 2009

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

Ответы [ 4 ]

36 голосов
/ 30 апреля 2010

Это исправлено в 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>

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

18 голосов
/ 12 июня 2009

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

4 голосов
/ 12 июня 2009

По аналогичной причине в StackOverflow не может быть тега web.config.

http://stackoverflow.uservoice.com/pages/1722-general/suggestions/98871-web-config-tag-404-error

0 голосов
/ 08 июля 2009

по другой подобной причине у вас не может быть URL с точкой и косой чертой Семантические URL с точками в .net

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...