В нашем приложении ASP.NET MVC мы заметили, что мы не можем иметь имена файлов запрещенных файлов DOS — COM1
через COM9
, LPT1
через LPT9
, CON
, AUX
, PRN
и NUL
в любом месте на наших маршрутах. Они неизбежно приводят к тому, что IIS говорит нам, что файл не может быть найден, даже если мы установили маршрутизацию, чтобы не проверять наличие файлов в первую очередь. Как мы можем обойти это?
ASP.NET MVC Routing vs. Зарезервированные имена файлов в Windows
Ответ 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-адреса, соответствующие этим именам, и эти имена, за которыми следуют временные и случайные символы.
Ответ 3
По той же причине в StackOverflow не может быть тега web.config
.
http://stackoverflow.uservoice.com/pages/1722-general/suggestions/98871-web-config-tag-404-error
Ответ 4
по другой аналогичной причине вы не можете иметь URL-адреса с точкой и косой чертой Семантические URL-адреса с точками в .net