2012-05-22 2 views
0

У меня есть веб-приложение ASP.net, которое имеет разные функциональные возможности и данные в зависимости от URL-адреса, в который он входит.C# asp.net mvc HttpRequest.URL

Все работает отлично в развернутой среде, так как я могу связать несколько хостов в IIS, и веб-приложение может затем запросить запрос.URL, чтобы определить, какой код и данные использовать.

например. http://foo.bar.com будет работать под другим кодом, чем http://test.bar.com

Проблема возникает при отладке VS2010 на моей машине разработки. Я могу жестко запрограммировать URL-адрес сайта по умолчанию в конфигурации, но требует одновременного запуска нескольких. например site1.localhost, site2.localhost, site3.localhost ....

Я пытался редактировать мои хосты файл в system32/драйверы/и т.д. например

127.0.0.1 localhost site1.localhost site2.localhost 

но если я ударил site1.localhost в моем коде request.Url всегда localhost

В любом случае я могу обойти это?

+0

Вы пробовали несколько строк файла-хозяина ... – mfras3r

+0

yep пробовал, что не работал – rqmedes

+0

Вы принимаете участие в IIS? У вас есть сайт, связанный с site1.localhost и site2.localhost? – mfras3r

ответ

1

Если вы указали свое имя хоста в system32/drivers/etc/hosts, попробуйте этот код. Это должно возвращать правильный путь

 string host = Request.Headers["Host"]; 
    string pathAndQuery = Request.Url.PathAndQuery; 

    string fullPath = host + pathAndQuery; 
+0

Удивительный, теперь почему я об этом не думал. Спасибо – rqmedes

+0

:) добро пожаловать. –

0

Основано на комментариях mfras3r. Я могу заставить его работать через

Настройка веб-сайта в IIS, укажите этот веб-сайт в каталог моего приложения MVC. Добавьте привязки для всех URL-адресов на веб-сайт в IIS. Добавьте URL-адреса в/etc/hosts, указывая на localhost.

Построить приложение. (Не запускайте его, так как он будет поврежден из-за IIS) Отладка -> Привязать к процессу IIS.

0

Я думаю, что сервер отладки vs2010 не является полнофункциональным IIS. Он не поддерживает несколько сайтов. Поэтому в вашей ситуации лучше использовать «attach» или удаленную отладку. Это зависит от того, можно ли установить IIS на свою машину разработки.