Как узнать, какая версия модуля перезаписи URL-адреса IIS7 установлена

Я создал правило перезаписи в IIS7, которое использует атрибут trackAllCaptures = "false" в элементе условий и использует outboundRules. Все работает отлично на моей тестовой системе, однако, когда я применяю эти правила к GoDaddy, я получаю ошибку:

Unrecognized attribute 'trackAllCaptures' 

И если я включаю outboundRules node, я получаю 500 ошибок с сервера. Я говорил с их поддержкой, и они настаивают на том, что они поддерживают 2.0 версию модуля URL Rewrite. Мой вопрос: как мне проверить или сообщить им, как проверить версию этого модуля? Я не могу найти пути, где бы вы ни пытались установить его, как проверить версию.

Я пытаюсь переписать URL-адрес приложения ASP.Net, а не WordPress, чтобы удалить подпапку с URL-адреса, это очень распространенная проблема в их многодоменном хостинге. Образец, который я использую, находится здесь: http://weblogs.asp.net/owscott/archive/2010/05/26/url-rewrite-multiple-domains-under-one-site-part-ii.aspx

Ответы

Ответ 1

Двоичный код для Url Rewrite расположен по адресу:

%SystemRoot%\system32\inetsrv\rewrite.dll

Url Rewrite 1.1 имеет версию файла 7.1.490.43.
Url Rewrite 2.0 имеет версию файла 7.1.761.0 или 7.1.871.0 (могут быть и другие, но это две разные версии, о которых я знаю).

Если у вас нет доступа к консоли для проверки номера версии, попробуйте запустить следующий код на простой веб-странице:

Assembly a = Assembly.Load("Microsoft.Web.Iis.Rewrite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35");
Response.Write(a.FullName);

Если UrlRewrite 2.0 установлен, вы увидите что-то вроде:

Microsoft.Web.Iis.Rewrite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Если это не так, вы получите исключение:

Не удалось загрузить файл или сборку "Microsoft.Web.Iis.Rewrite, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" или одна из его зависимостей. Система не может найти указанный файл.

Вы также можете указать их на этой странице документации:

Отслеживание групп захвата по всем условиям

В этом параграфе довольно ясно, что trackAllCaptures - это особый параметр 2.0, и если он не работает, то 2.0 определенно не установлен:

В модуле URL Rewrite 2.0 можно изменить способ индексирования групп захвата. Включение параметра trackAllCaptures в коллекции <conditions> позволяет группам захвата формировать все согласованные условия, доступные через обратные ссылки.