Если я размещаю страницу 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" />
<asp:Button ID="btn2" runat="server" Text="read Cache" OnClick="btn_Click2" />
<hr />
<asp:Label ID="lbl" runat="server" />
</div>
</form>
</body>
</html>
при первом запуске, я получаю текст assigned Session Variable
, но при нажатии объект Session всегда null
У меня есть опция, которую нужно включить / выключить, чтобы использовать обычные переменные сеанса?
отлично работает на IIS 6.0 и Cassini (в VS 2008 и 2010).
Я начинаю без идей о том, что происходит: o (
Любая помощь очень ценится!
процесс на странице примера выше
Дополнительные тесты показывает, что это происходит только в IE (т.е. в данном случае 8), Firefox, Safari, Opera, Chrome все они дают правильный «ответ»
проверьте скриншот ситуации