Asp.net mvc 2 使用主机名而不是IP地址(IE)时会话丢失

Asp.net mvc 2 使用主机名而不是IP地址(IE)时会话丢失,asp.net-mvc-2,Asp.net Mvc 2,我正在学习asp.NETMVC2,这对我来说是非常愉快的 我已经构建了一个小型MVC2应用程序,它在内置的ASP.net开发服务器中运行良好。然而,当它部署在IIS7.5、WindowsServer2008R2企业版中时,出现了一些问题。当我通过IE访问应用程序并使用主机名指定url时,会话为空 使用IE(IE 7或IE8)访问带有link或ipaddress=>的应用 但是当我使用IE(IE 7或IE8)通过链接http:/hostname/=>访问我的应用程序时,会话总是空的 FireFox

我正在学习asp.NETMVC2,这对我来说是非常愉快的

我已经构建了一个小型MVC2应用程序,它在内置的ASP.net开发服务器中运行良好。然而,当它部署在IIS7.5、WindowsServer2008R2企业版中时,出现了一些问题。当我通过IE访问应用程序并使用主机名指定url时,会话为空

使用IE(IE 7或IE8)访问带有link或ipaddress=>的应用

但是当我使用IE(IE 7或IE8)通过链接http:/hostname/=>访问我的应用程序时,会话总是空的

FireFox在所有情况下都能正常工作,无论是内置的ASP.net开发服务器还是IIS服务器,无论是主机名、ip还是本地主机,我都非常支持

我真的很感激你的建议


谢谢

如果您使用的是基于cookie的会话,则可能是您不允许IE中使用cookie

我相信默认情况下,会话标识存储在请求之间的cookie中,以允许应用程序重新连接到其会话数据


您可以使用无cookieless会话,将会话标识作为查询字符串附加到url,或者至少在webforms中使用-我不确定这在mvc中是如何运行的。

我发现了这个问题,它是由带有下划线的web服务器主机名引起的。 谢谢大家。

@khoailang

我也遇到了同样的问题,并且发现当使用名称中带有下划线的机器名时,IE会出现问题

例如:machine_01/app/Default.aspx=>会话丢失

而10.100.0.1/app.Default.aspx工作,其中10.100.0.1是机器_01的IP

知道为什么会这样吗

根据:

协议授权的互联网标准(征求意见) 该组件主机名标签可能只包含ASCII字母“a” 通过“z”(不区分大小写),数字“0”到 “9”和连字符('-')。不允许使用其他符号、标点符号或空格 允许


主机名中的下划线会导致许多奇怪的、不一致的问题,包括发送邮件的问题、sql复制无法以意外方式工作以及大多数RDP连接失败。

谢谢你,马克,你说得对,我的IE还没有启用Cookie。但我仍然担心为什么IE可以使用IP地址或本地主机url而不是主机名?