2010-11-24 2 views
5

Мне нужно, чтобы URL, которые имеют некоторые зарезервированные ключевые слова, как CON, AUX, NUL и т.д. в URL-имен, например: ..../CON/...Разрешить CON, зарезервированные ключевые слова в URL-

Сейчас я получить сообщение об ошибке 404 и следующее исключение при попытке перейти к такому URL:

[HttpException] 
    at System.Web.CachedPathData.GetConfigPathData(String configPath) 
    at System.Web.HttpContext.GetFilePathData() 

Это было зафиксировано на .Net 4 по другим должностям на этом сайте Semantic urls with dots in .net, я, однако, не может перейти на .Net4 из-за к другим зависимостям, поэтому нужен альтернативный способ сделать это.

+0

Мне что-то не хватает. У URL-адресов нет зарезервированных ключевых слов. И я не могу найти CachedPathData или GetConfigPathData в любом месте MSDN. – Amy 2010-11-24 06:54:11

+0

@ yodaj007 Они имеют особое значение в Windows, поскольку они являются устройствами. – 2010-11-24 17:22:12

ответ

3

Согласно ответам Microsoft на это на форумах для подключения и MSDN, в asp.net нет обходного пути, кроме обновления до 4.0. Вы можете попробовать использовать переписывание URL-адресов IIS, но вы по-прежнему не можете поместить COM1 (или что-то еще) в свои маршруты.

(Смотри также: http://haacked.com/archive/2010/04/29/allowing-reserved-filenames-in-URLs.aspx)

+0

ссылки на «соединения и форумы MSDN» сделают это более полезным ответом. – 2010-11-24 17:31:07

2

ASP.NET 4 устраняет эту проблему с новой установкой. В web.config просто добавьте <httpRuntime relaxedUrlToFileSystemMapping="true"/> к узлу system.web. Вот фрагмент моего web.config.

<configuration> 
<system.web> 
<httpRuntime relaxedUrlToFileSystemMapping="true"/> 
<!-- ... your other settings ... --> 
</system.web> 
</configuration> 
Смежные вопросы