我正在学习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。
我真的很感谢你的建议!
谢谢
答案 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连接失败。