Если я размещу страницу 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 Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
HttpContext.Current.Session["a"] = "A";
lbl.Text = "assigned Session Variable";
}
}
</script>
<html>
<head>
<title>Testing Sessions</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="btn" runat="server" Text="reload" OnClick="btn_Click" />
<hr />
<asp:Label ID="lbl" runat="server" />
</div>
</form>
</body>
</html>
с первого раза я получаю assigned Session Variable
текст, но после щелчка объект сеанса всегда null
Есть ли опция, которую мне нужно включить / выключить, чтобы использовать обычные переменные сеанса?
отлично работает на IIS 6.0 и Cassini (в VS 2008 и 2010).
Я начинаю не понимать, что происходит: o (
Любая помощь приветствуется!
процесс примера страницы выше
Больше тестов показывает, что это происходит только в IE (в данном случае IE8), Firefox, Safari, Opera, Chrome, все они дают правильный "ответ"
проверить снимок экрана ситуации
Вы должны изменить свой URL-адрес par_2008_64 в par200864, потому что в проводнике подчеркивание не работает, и сеанс становится нулевым
Традиционное состояние сеанса требует, чтобы для рассматриваемого сайта были включены файлы cookie. Возможно ли, что у вас установлен Internet Explorer для блокировки файлов cookie, поступающих с сервера, а другие браузеры не настроены таким образом? Это объяснило бы разницу в поведении. Вы должны уметь использовать Fiddler (см. http://www.fiddler2.com/fiddler2/), чтобы наблюдать за HTTP-трафиком между IE и сервером и посмотреть, отправляет ли IE cookie обратно на сервер. Я очень подозреваю, что ответ - «нет».
Вы можете установить сеансы без файлов cookie (например, http://msdn.microsoft.com/en-us/library/ms972429.aspx) в вашем файле web.config, чтобы подтвердить это; если работает без файлов cookie, тогда вперед.
Если кто-нибудь обнаружит эту «ошибку», сделайте простую вещь, чтобы исправить ее.
Была такая же проблема у клиента. Удаление и добавление приложения в этом случае не решит проблему. Уловка заключается в следующем: замените или удалите подчеркивание в URL-адресе!