0

我的 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").Value”总是抛出异常“对象引用未设置为对象的实例”。,我解释为它找不到要加载的保存值?

知道为什么我失败了吗?更重要的是,我该如何解决它!

感谢您的帮助,我这几天一直在努力解决这个问题。

4

1 回答 1

0

我想我找到了导致我的问题的问题。

事实证明,IIS、IE 和名称中包含下划线“_”的服务器名称的组合会导致某种问题,从而使 cookie 无法正常工作。

我终于发现了这个问题:线程:缺少带有 iis 64 位 isapi_redirect.dll jboss 和 MSIE 的 sessionid

里面有没有说:

在我们的案例中,问题是 URL 中的下划线。如果服务器名的一部分有下划线,则 IE7 不接受它,但所有其他浏览器都接受它。(server_1 正常,server-1 正常)

rgrds

当我在名称中没有下划线的服务器上进行测试时,在同一个浏览器上,一切正常。

于 2012-06-15T14:23:32.907 回答