Сеанс потерян при использовании имени хоста вместо IP-адреса (IE) - PullRequest
2 голосов
/ 29 ноября 2010

Я учусь asp.net MVC 2, это очень интересно со мной.

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

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

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

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

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

Спасибо

Ответы [ 4 ]

4 голосов
/ 09 декабря 2010

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

1 голос
/ 20 июля 2011

@ khoailang

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

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

, а 10.100.0.1/app.Default.aspx работает, где 10.100.0.1 - это IP-адрес machine_01.

Есть идеи, почему это происходит?

0 голосов
/ 12 октября 2011

Согласно http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names:

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

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

0 голосов
/ 29 ноября 2010

Если вы используете сеансы на основе файлов cookie, возможно, вы не разрешаете использование файлов cookie в IE.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...