2010-11-09 9 views
6

Mam aplikację internetową .net 4.0 hostowaną na serwerze IIS7.Reguły przepisywania adresu URL IIS 7 nie są stosowane

Po przeczytaniu tego: http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/ o udostępnianiu statycznej zawartości z innego serwera, aby pliki cookie nie były wysyłane przy każdym żądaniu pliku statycznego, próbowałem go, ale bez powodzenia.

Jest to część napisane w pliku web.config:

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="images" stopProcessing="true"> 
       <match url="^images/(.*)$" /> 
       <action type="Rewrite" url="http://static-server.com/images/{R:1}" appendQueryString="true" logRewrittenUrl="true" /> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 

Z tej reguły zdefiniowany, każdy link do pliku w folderze Obrazy powinny być rewriten do adresu URL static-serwer. Ale to nie działa, teraz każdy obraz znajdujący się w folderze obrazów zwraca 404 nie znaleziono. Każdy pomysł na to, co może być przyczyną tego zachowania lub inne rozwiązanie, w jaki sposób wyświetlać pliki z określonego folderu z innego serwera, bez konieczności przechodzenia przez tony kodu i zmieniania wszystkich łączy do łącza do serwera statycznego?

Próbowałem też użyć typu akcji Przekierowanie zamiast akcji Przepisywanie, która zadziałała, ale nie podoba się powód, dla którego próbuję serwować pliki na innym serwerze (w ten sposób żądanie jest wysyłane do mojego dynamiczny serwer zawartości z wszystkimi wymaganymi plikami cookie i jest przekierowywany na serwer statyczny, który jest faktycznie gorszy niż serwowanie obrazów z dynamicznego serwera treści).

Odpowiedz

2

Nie sądzę, że sama zasada rozwiąże ten problem. Prawdopodobnie nie przepisuje linków na stronach, które są wysyłane do użytkowników.

Artykuł, który łączysz, sugeruje, że robisz to "razem z IIS Application Request Routing module". Jest to moduł routingu, który faktycznie zmienia linki w plikach wysyłanych do klienta.

+0

Zainstalowałem moduł "Application Request Routing" po http://learn.iis.net/page.aspx/485/define-and-configure-an-application-request-routing-server-farm/ krok po kroku i http://learn.iis.net/page.aspx/484/configure-3-tier-deployment-architecture-using-application-request-routing/ bez pozytywnego wyniku. Dopiero wtedy nie dostaję 404, ale 500. Może coś jest nie tak ze sposobem w jaki konfiguruję moduł ARR? – Atzoya

+0

O co chodzi w błędzie 500 (sprawdź logi) –

+0

Zdecydowanie jest to moduł ARR, który powoduje problemy, ale nie mogę go skonfigurować. Postanowiłem przejść z innym podejściem (ręcznie zmieniłem ścieżki niektórych potrzebnych zasobów), dopóki nie dowiem się, jak poprawnie skonfigurować moduł. Kiedy dowiem się, co jest przyczyną problemu, zaktualizuję mój post z tym, co zrobiłem. – Atzoya