使用主机名而不是IP地址(IE)时会话丢失

时间:2010-11-29 12:13:07

标签: asp.net-mvc-2

我正在学习asp.net mvc 2,它非常适合我。

我已经构建了一个小型的MVC2应用程序,它在构建它的ASP.net开发服务器上运行良好。但是,在IIS 7.5,Window Server 2008 R2 Enterprise中部署它时出现了问题。当我通过IE访问应用程序并使用hostname指定url时,会话是awlays null。

使用IE(IE 7或IE8)通过链接http://localhost/或ipaddress =>访问我的应用程序每个工作正常

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

我很沮丧,FireFox在所有情况下都能正常工作,内置ASP.net开发服务器和IIS服务器,无论是主机名还是ip和localhost。

我真的很感谢你的建议!

谢谢

4 个答案:

答案 0 :(得分:4)

我找出了由具有下划线的Web服务器主机名引起的问题。 谢谢大家。

答案 1 :(得分:1)

@khoailang

我遇到了同样的问题,当你在名字中使用带下划线的机器名时,我发现了IE的问题。

例如。 machine_01 / app / Default.aspx =>会议失去了!

而10.100.0.1/app.Default.aspx适用于10.100.0.1是machine_01的IP。

知道为什么会这样吗?

答案 2 :(得分:0)

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

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

您可以使用无会话会话将会话标识作为查询字符串附加到网址,或者至少在网络表单中 - 我不确定这在mvc中是如何表现的。

答案 3 :(得分:0)

根据http://en.wikipedia.org/wiki/Hostname#Restrictions_on_valid_host_names

  

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

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