Iis 7 IE8不保留会话变量

Iis 7 IE8不保留会话变量,iis-7,internet-explorer-8,session-state,session-variables,Iis 7,Internet Explorer 8,Session State,Session Variables,如果我使用以下内容托管ASP.NET页面: <%@ Page Language="C#" %> <!DOCTYPE html> <script runat="server"> protected void btn_Click(object sender, EventArgs e) { lbl.Text = HttpContext.Current.Session["a"] == null ?

如果我使用以下内容托管ASP.NET页面:

<%@ Page Language="C#" %>
<!DOCTYPE html>
<script runat="server">

    protected void btn_Click(object sender, EventArgs e)
    {
        lbl.Text = HttpContext.Current.Session["a"] == null ? 
                      "null" : 
                      HttpContext.Current.Session["a"].ToString();
    }
    protected void btn_Click2(object sender, EventArgs e)
    {
        lbl.Text = HttpContext.Current.Cache["a"] == null ? 
                      "null" : 
                      HttpContext.Current.Cache["a"].ToString();
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            HttpContext.Current.Session["a"] = "CBA";
            lbl.Text = "assigned Session Variable";

            HttpContext.Current.Cache.Add(
                    "a", "ABC", null, 
                    DateTime.Now.AddHours(2), TimeSpan.Zero, 
                    CacheItemPriority.NotRemovable, null);
        }
    }

</script>

<html>
<head>
    <title>Testing Session</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btn" runat="server" Text="read Session" OnClick="btn_Click" />&nbsp;&nbsp;
        <asp:Button ID="btn2" runat="server" Text="read Cache" OnClick="btn_Click2" />
        <hr />
        <asp:Label ID="lbl" runat="server" />
    </div>
    </form>
</body>
</html>

受保护的无效btn_单击(对象发送方,事件参数e)
{
lbl.Text=HttpContext.Current.Session[“a”]==null?
“空”:
HttpContext.Current.Session[“a”].ToString();
}
受保护的无效btn_Click2(对象发送方,事件参数e)
{
lbl.Text=HttpContext.Current.Cache[“a”]==null?
“空”:
HttpContext.Current.Cache[“a”].ToString();
}
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!Page.IsPostBack)
{
HttpContext.Current.Session[“a”]=“CBA”;
lbl.Text=“分配的会话变量”;
HttpContext.Current.Cache.Add(
“a”,“ABC”,空,
DateTime.Now.AddHours(2),TimeSpan.Zero,
CacheItemPriority.NotRemovable,null);
}
}
测试会议


浏览器通过本地存储的cookie维护会话ID


您是否在某种保护模式下运行,以防止IE8存储cookie?状态栏上应有一个红色警告图标。。“…阻止此站点存储cookie”的原因可能是域中的下划线。删除u并查看是否发生相同的情况

代码与示例不同。“重新加载”触发哪个单击事件?处理缓存或会话的那个?是的,我最后还添加了一个
cache
按钮来查看缓存是如何处理的。。。它确实可以正确地处理,但我确实需要会话变量,因为我希望它们是每个用户的,而不是每个应用程序的,而且数据实际上不需要在缓存中。ScreenCast有新代码(我问题开头的示例代码)我也有同样的问题。。。有人知道可能是什么问题吗?该网站在Firefox上运行良好,但用户(全国各地)都使用IE8。直到几天前,该网站在IE8中运行得还不错。我找不到解释@alejandro我知道一个解释,但它没有帮助:(这一切都是从Windows更新开始的,在那之后,它很愚蠢,站点工作正常,之后,会话就没有保留。我会将问题指向DNS/IE之类的东西,就像你将机器名更改为服务器的IP地址一样,一切正常。我已经将IE设置为“低”,将域添加到受信任的站点,在高级设置中,我甚至添加了显示不信任内容的选项…但我所做的一切都是一样的(我确实重新启动IE):o(当主机包含下划线时阻止Cookie是IE中的一个已知问题。