我的vb.net代码写入一个cookie值,然后检索它。
编写cookie的代码是:
Dim cookie As HttpCookie = New HttpCookie("mySessionID", mySessionID)
cookie.Expires = DateTime.Now.AddDays(90)
cookie.HttpOnly = True
Response.Cookies.Add(cookie)
以及在后续页面上阅读的代码:
Dim myRetrivedSessionID as String = Request.Cookies("mySessionID").Value
当代码在FireFox中运行时运行良好,但在IE8 (或IE7)中运行时“Request.Cookies(”mySessionID“)。值”总是抛出异常 “对象引用未设置为对象的实例。” ,我解释为意味着它无法找到要加载的已保存值?
知道为什么我失败了吗? 更重要的是,我该如何解决它!
感谢您的帮助,我几天来一直在反对这个问题。
答案 0 :(得分:0)
我想我发现问题导致了我的问题。
事实证明,IIS,IE和名称中包含下划线“_”的服务器名称的组合会导致某些问题,导致Cookie无法正常运行。
我终于对这个问题喋喋不休:Thread: missing sessionid with iis 64 bit isapi_redirect.dll jboss and MSIE
In is it said:
我们案例中的问题是URL中的下划线。 IE7不接受它,但是如果服务器名称的一部分有下划线,则不被所有其他浏览器接受。 (server_1是nok,server-1没问题)
rgrds
当我在没有名称下划线的服务器上测试时,在同一个浏览器上,一切正常。