Перезапись URL с помощью asp.net.нужна ли конфигурация? - PullRequest
6 голосов
/ 30 августа 2010

Я пытаюсь включить переписанные URL-адреса в моем проекте.это очень хорошо описано в этом посте: urlrewriting от scottgu Он очень хорошо работает, когда я запускаю его на localhost, но как только я загружаю его на свой хост (.net 3.5), он не работает!меня всегда перенаправляют на страницу 404!

Нужна ли конфигурация для этого?как Скоттгу говорит нет, но я не понимаю, почему это не работает ...

спасибо

// ОБНОВЛЕНИЕ 2.09.2010

Есть ли способ на самом делевключить маршрутизацию или перезапись, не имея iis7 или возможности установить модуль типа ISAPI Rewrite на сервер?Похоже, у меня плохой хост asp.net ...

Ответы [ 3 ]

4 голосов
/ 30 августа 2010

В вашей среде localhost вы, вероятно, запускаете веб-сайт на своем сервере разработки ASP.NET. Этот сервер настроен на захват всех запросов (*. *) И запуск их через конвейер ASP.NET.

II6, с другой стороны, настроен на отправку только некоторых запросов (например, * .aspx, * .asmx, * .ashx) через конвейер ASP.NET. Поэтому, если вы пытаетесь перехватить запрос на URL-адрес, такой как «/ my / fine / url», который никогда не будет передан обработчику ASP.NET и, следовательно, не будет переписан.

Вы можете изменить эту конфигурацию в конфигурации приложения для веб-сайта:

  1. Откройте диспетчер IIS и щелкните правой кнопкой мыши веб-сайт, выберите «Свойства»
  2. На вкладке «Домашний каталог» нажмите кнопку «Конфигурация ...».
  3. Нажмите кнопку «Вставить ...», чтобы вставить карту приложения Wildcard.
  4. В «Исполняемый файл:» вставьте путь к aspnet_isapi.dll, в моем случае C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ aspnet_isapi.dll (примечание: этот путь может отличаться на вашем сервере).
  5. Не забудьте снять флажок «Убедитесь, что файл существует»
  6. Нажмите ОК!

И так! Все ваши запросы теперь должны быть направлены в обработчик ASP.NET и, следовательно, перехвачены в вашем устройстве переписывания URL, независимо от расширения.

Но я должен признать, что немного не уверен, как это повлияет на производительность вашего сайта, перенаправляя все запросы на статические файлы, CSS, изображения и т. Д. Через обработчик ASP.NET. Может, кому-то еще есть что сказать по этому поводу.

/ Денис: -)

1 голос
/ 02 сентября 2010

Существует два способа получить маршруты без расширений в IIS6:

a) Перезапись ISAPI или другой перезаписывающий URL-адрес ISAPI
b) Использование сопоставления с подстановочными знаками для aspnet_isapi.dll

См. это сообщение в блоге для подробных инструкций.

0 голосов
/ 30 августа 2010

Вот пример того, как использовать новую System.Web.Routing в ASP.NET WebForms.

http://deepumi.wordpress.com/2010/02/27/url-routing-in-asp-net-web-forms/

...