如果通过机器名访问 Web 服务器,会话数据将丢失
Session data is lost if the web server is accessed by the machine name
我遇到了一个很奇怪的问题。如果我使用机器名称访问我的 asp.net 应用程序,则该应用程序无法 store/retrieve 来自会话的值。
我有一个 asp.net 应用程序,我在其中的一页上的会话中存储了几个变量,然后在第二页上访问它们。
当我使用机器名 (http://ultp_384/lem) I don't get any data from the session on the second page. but if I access it with localhost (http://localhost/lem) 或 IP 地址访问我的服务器时,应用程序工作正常,我能够在第二页上检索会话数据。
我曾尝试将会话模式从状态更改为进程中,但没有帮助。对于其他 asp.net 应用程序也可以观察到。所以我猜这不是应用程序本身的问题。
有人可以帮我解决这个问题吗?
谢谢
尝试对第一个页面请求使用完全限定的域名(例如,http://ultp_384.yourcompany.com/lem)。
如果可行,则问题是从浏览器获取会话 ID cookie -- 第一个页面请求在一个域中,下一个页面在另一个域中。因此,第二个页面无法访问与会话关联的会话 ID cookie,因此您丢失了会话信息。
这个 link http://www.quirksmode.org/js/cookies.html#intro 有一些关于 cookie 的域和路径的信息。
我想我知道我的情况。以防万一有人遇到同样的问题,这可能会节省他们的时间。
我的服务器名称中有下划线 (ultp_384)。在这种情况下,IE 和 cookie 存在已知问题。
参考以下link:http://forums.iis.net/t/1150171.aspx?Cookie+problem+in+IIS7+and+IE+New+session+id+with+every+request
总而言之,如果网络服务器有下划线,那么 IE 会为每个请求生成新的会话 ID,因此会话数据会随着服务器为每个请求创建新会话而丢失。
如果您遇到类似问题,请尝试使用 Firefox 和 chrome 等不同浏览器访问您的网站。
谢谢
我遇到了一个很奇怪的问题。如果我使用机器名称访问我的 asp.net 应用程序,则该应用程序无法 store/retrieve 来自会话的值。
我有一个 asp.net 应用程序,我在其中的一页上的会话中存储了几个变量,然后在第二页上访问它们。
当我使用机器名 (http://ultp_384/lem) I don't get any data from the session on the second page. but if I access it with localhost (http://localhost/lem) 或 IP 地址访问我的服务器时,应用程序工作正常,我能够在第二页上检索会话数据。
我曾尝试将会话模式从状态更改为进程中,但没有帮助。对于其他 asp.net 应用程序也可以观察到。所以我猜这不是应用程序本身的问题。
有人可以帮我解决这个问题吗?
谢谢
尝试对第一个页面请求使用完全限定的域名(例如,http://ultp_384.yourcompany.com/lem)。
如果可行,则问题是从浏览器获取会话 ID cookie -- 第一个页面请求在一个域中,下一个页面在另一个域中。因此,第二个页面无法访问与会话关联的会话 ID cookie,因此您丢失了会话信息。
这个 link http://www.quirksmode.org/js/cookies.html#intro 有一些关于 cookie 的域和路径的信息。
我想我知道我的情况。以防万一有人遇到同样的问题,这可能会节省他们的时间。
我的服务器名称中有下划线 (ultp_384)。在这种情况下,IE 和 cookie 存在已知问题。
参考以下link:http://forums.iis.net/t/1150171.aspx?Cookie+problem+in+IIS7+and+IE+New+session+id+with+every+request
总而言之,如果网络服务器有下划线,那么 IE 会为每个请求生成新的会话 ID,因此会话数据会随着服务器为每个请求创建新会话而丢失。
如果您遇到类似问题,请尝试使用 Firefox 和 chrome 等不同浏览器访问您的网站。
谢谢