2010-11-29 2 views
2

Я изучаю asp.net mvc 2, это очень excting со мной.Сессия потеряна при использовании имени хоста вместо IP-адреса (IE)

Я создал небольшое приложение MVC2, оно отлично работает в построившем его ASP.net Development Server. Однако при развертывании в IIS 7.5, Window Server 2008 R2 Enterprise есть что-то не так. Сессия awlays null, когда я обращаюсь к приложению через IE и использую имя хоста для указания URL-адреса.

Использование IE (IE 7 или IE8), чтобы получить доступ к моему приложению со ссылкой http://localhost/ или IP-адрес => каждый работает отлично

Но когда я использую IE (IE 7 или IE8), чтобы получить доступ к моему приложению с ссылкой HTTP:/hostname/=> session always null

Я удивлен, пока FireFox работает нормально во всех случаях, как из встроенного сервера ASP.net Development, так и для сервера IIS, и в обоих случаях имя хоста, и ip и localhost.

Я очень ценю ваш совет!

Благодаря

ответ

4

Я выяснил проблему, вызванную именем хоста веб-сервера, которое имеет знак подчеркивания. Спасибо всем.

0

Если вы используете куки на основе сеансов, может быть, что вы не позволяете куки в IE.

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

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

+0

спасибо, Марк, вы правы, в моем IE пока нет файлов cookie.Но я все еще обеспокоен тем, что IE отлично работает с IP-адресом или адресом localhost вместо имени хоста? – khoailang 2010-11-29 16:47:21

1

@khoailang

У меня была такая же проблема, и понял, проблема с IE происходит, когда вы используете имя машины с подчеркиванием в его названии.

например. machine_01/app/Default.aspx => Сессия потеряна!

в то время как 10.100.0.1/app.Default.aspx работает там, где 10.100.0.1 является IP для machine_01.

Любая идея, почему это происходит?

0

По http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names:

в Интернете стандарты (Запрос на комментарии) для протоколов мандата , что компонент имени хоста этикетка может содержать только ASCII букву «а» через «г» (в регистронезависимом способ), цифры от 0 'до ' 9 'и дефис (' - '). Никаких других символов, знаков препинания или пробелов нет разрешено.

Подчеркивание имен хостов вызывает ряд странных, непоследовательных проблем, в том числе проблемы с отправкой почты, репликация SQL не работает неожиданным образом, а большинство неудачных попыток RDP.

Смежные вопросы