Я хочу, чтобы некоторые из моих идентификаторов были разделены двоеточиями, что означает, что в моих URL-путях есть двоеточия, например /somethings/xyz:123.

Я удалил : из requestPathInvalidCharacters, но теперь у меня другая проблема. Похоже, что во внешнем приложении есть несколько сторонних модулей, которые получают PhysicalPath или выполняют MapPath по всем запросам, что, похоже, имеет проблемы с двоеточиями:

[NotSupportedException: The given path's format is not supported.]
   System.Security.Util.StringExpressionSet.CanonicalizePath(String path, Boolean needFullPath) +14633709
   System.Security.Util.StringExpressionSet.CreateListFromExpressions(String[] str, Boolean needFullPath) +351
   System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, AccessControlActions control, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) +151
   System.Security.Permissions.FileIOPermission.AddPathList(FileIOPermissionAccess access, String[] pathListOrig, Boolean checkForDuplicates, Boolean needFullPath, Boolean copyPathList) +38
   System.Security.Permissions.FileIOPermission..ctor(FileIOPermissionAccess access, String path) +92
   System.Web.Hosting.HostingEnvironment.MapPath(VirtualPath virtualPath) +107

Как мне решить эту проблему, не переписывая все эти модули?

0
Andrey Shchekin 10 Ноя 2014 в 07:38

2 ответа

Лучший ответ

Я нашел ответ, который исправляет исключения в PhysicalPath и MapPath (для всех модулей):

<httpRuntime ... relaxedUrlToFileSystemMapping="true" />

1
Andrey Shchekin 10 Ноя 2014 в 22:35

Я не тестировал это сам, но это может помочь. Проверьте, установлено ли это исправление - http://support2.microsoft.com/kb/932552

И затем, согласно документу, вы должны изменить приведенные ниже параметры реестра.

После установки этого исправления необходимо включить его, задав для параметра VerificationCompatibility запись следующего подраздела реестра значение 1:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET

DWord Value Name: VerificationCompatibility 
Value Data: 1
0
govin 10 Ноя 2014 в 06:35