2012-08-05 8 views
15

Utworzono regułę przepisywania w IIS7, która używa atrybutu trackAllCaptures = "false" w elemencie conditions i używa outboundRules. Wszystko działa dobrze w moim systemie testowym jednak gdy wdrożyć te zasady do GoDaddy pojawia się błąd:Skąd wiadomo, która wersja modułu URL Rewrite IIS7 jest zainstalowana?

Unrecognized attribute 'trackAllCaptures' 

I jeśli to węzeł outboundRules otrzymuję błąd 500 z serwera. Rozmawiałem z ich wsparciem i twierdzą, że mają wsparcie dla wersji 2.0 modułu URL Rewrite. Moje pytanie brzmi: jak mogę je zweryfikować lub skomentować, jak sprawdzić wersję tego modułu? Nie mogę znaleźć nigdzie indziej sposobu na zainstalowanie go, jak sprawdzić wersję.

Próbuję przepisać adresy URL dla aplikacji ASP.Net, a nie WordPress, aby usunąć podfolder z adresu URL, który jest bardzo rozpowszechnionym problemem w ich hostingu wielodomenowym. Próbka Używam znajduje się tutaj: http://weblogs.asp.net/owscott/archive/2010/05/26/url-rewrite-multiple-domains-under-one-site-part-ii.aspx

+0

I mieć wersję 2.0 zainstalowaną z dn. 30.06.2010, jest w% SystemRoot% \ system32 \ inetsrv \ rewrite.dll z wersją pliku/produktu w wersji 7.1.871.0, więc może sprawdź wersję twojego rewrite.dll? –

+0

Czy wiesz, że używasz środowiska pełnego lub częściowego zaufania? – Kev

+0

Używam środowiska o średnim zaufaniu. Czy funkcja traceAllCaptures lub outboundRules wymaga pełnego zaufania? – blkbam

Odpowiedz

22

binarny do przepisywania URL znajduje się pod adresem:

 
%SystemRoot%\system32\inetsrv\rewrite.dll 

Url Przepisz 1.1 ma plik wersja 7.1.490.43.
Url Rewrite 2.0 ma wersję pliku 7.1.761.0 lub 7.1.871.0 (mogą istnieć inne, ale są to dwie różne wersje, które znam).

Jeśli nie masz dostępu do konsoli, aby sprawdzić numer wersji spróbuj uruchomić następujący kod w prosty stronie internetowej:

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

Jeśli UrlRewrite 2.0 jest zainstalowany, zobaczysz coś takiego:

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

Jeśli nie jest wtedy dostaniesz rzucony wyjątek:

Could not load file or assembly 'Microsoft.Web.Iis.Rewrite, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

You współpracy uld również wskazać je na tej stronie dokumentacja:

Tracking Capture Groups Across Conditions

Ustęp ten sprawia, że ​​całkiem jasne, że trackAllCaptures jest 2,0 specyficzne ustawienie, a jeśli to nie działa wtedy 2.0 zdecydowanie nie jest zainstalowany:

In URL Rewrite Module 2.0, it is possible to change how capture groups are indexed. Enabling trackAllCaptures setting to on the <conditions> collection makes the capture groups form all matched conditions to be available through the back-references.

+0

Po wypróbowaniu kodu przykład działa lokalnie i kończy się niepowodzeniem po załadowaniu go na serwer, ponieważ jestem pewien, że wszyscy tego oczekiwaliśmy. Zaraz wrócę z nimi i zobaczę, czy mogę uzyskać z nich prostą odpowiedź. – blkbam

+0

Miałem ten sam problem i kontaktowałem się z obsługą GoDaddy, aby je poinformować.Dziś wieczorem stworzyli ważny bilet, aby ten problem został przeanalizowany. Czuję, że coś osiągnąłem, ale to pozostanie do zobaczenia. Atrybut trackAllCaptures nie jest rozpoznawany, chociaż myślę, że nie zamierzał tego zrobić. – rwkiii