2010-11-09 2 views
6

У меня есть веб-приложение .net 4.0, размещенное на сервере IIS7.Правила перезаписи URL-адреса IIS 7 не применяются

После прочтения этого вопроса: http://learn.iis.net/page.aspx/496/iis-url-rewriting-and-aspnet-routing/ об обслуживании статического содержимого с другого сервера, чтобы файлы cookie не отправлялись с каждым запросом на статический файл, я пробовал его, но без особого успеха.

Это часть написана в файле 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> 

С этим правилом определены, все ссылки на файл в папке с изображениями должны быть переписаны в URL статическими-сервера. Но это не работает вообще, теперь каждое изображение, находящееся в папке с изображениями, возвращает 404 не найден. Любая идея о том, что может вызвать это поведение или другое решение о том, как обслуживать файлы из определенной папки с другого сервера, без необходимости проделывать кучу кода и изменять все ссылки для ссылки на статический сервер?

Я также попытался использовать тип действия Redirect вместо действия Rewrite, которое фактически сработало, но оно бросает вызов причине, по которой я пытаюсь обслуживать файлы на другом сервере (таким образом, запрос отправляется на мой динамический контент-сервер со всеми необходимыми куки-файлами и перенаправляется на статический-сервер, что на самом деле хуже, чем обслуживание изображений с сервера динамического контента).

ответ

2

Я не думаю, что это правило решит эту проблему для вас. Вероятно, он не переписывает ссылки на страницах, которые отправляются пользователям.

В статье, которую вы указали, предлагается сделать это «вместе с IIS Application Request Routing module». Это модуль маршрутизации, который фактически изменяет ссылки в файлах, отправленных клиенту.

+0

Я установил модуль маршрутизации запроса приложений, следующий за http://learn.iis.net/page.aspx/485/define-and-configure-an-application-request-routing-server-farm/ шаг за шагом и http://learn.iis.net/page.aspx/484/configure-3-tier-deployment-architecture-using-application-request-routing/ без положительного результата. Только тогда я не получаю 404, а 500. Может быть, что-то не так с тем, как я настраиваю модуль ARR? – Atzoya

+0

Что такое ошибка 500 (проверьте журналы) –

+0

Это определенно модуль ARR, который вызывает проблемы, но я не могу настроить его. Решили пойти с другим подходом (вручную изменили пути некоторых необходимых ресурсов), пока не узнаю, как правильно настроить модуль. Когда я узнаю, что вызывает проблему, я обновляю свой пост тем, что я сделал. – Atzoya