回发后会话变量为空

时间:2015-01-07 10:02:33

标签: asp.net iis-7 postback session-variables

我在x64计算机上的IIS 7上运行了一个ASP.NET v4.0 Web应用程序。 这个应用程序在本地开发机器上没有问题,并且以前的服务器是x86没有问题。

现在的问题是在回发后所有会话变量都为空。例如。我有一个autopostbacks的dropdownList。我一直试图解决这个问题几个小时没有任何运气。有人有任何想法吗?

SessionState是inProc,我没有在应用程序池上启用webGarden。

我使用下面的代码进行了测试。单击后,如果我在新服务器上运行该程序,则输出显示为null。但是如果我在本地运行它会按预期显示-4

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xyz.aspx.cs" Inherits="WebApplication1._default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="jsFunctions.js" ></script>
    <link rel="stylesheet" type="text/css" media="screen" href="css1.css"/>
    <link rel="stylesheet" type="text/css" media="print" href="css1_print.css" />
</head>
<body class="daBody" onload="HideCalendar('divCalendar')">
    <form id="form1" runat="server">
    <asp:TextBox ID="output" runat="server" CssClass="output1"></asp:TextBox>
    <asp:Button ID="b1" runat="server" OnClick="b1Click" BorderWidth="50px" />
    </form>
</body>
</html>
namespace WebApplication1
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            MaintainScrollPositionOnPostBack = true;
            if (!IsPostBack)
            {
             Session["test"] = -5;
             output.Text = ""+(int)Session["test"];
            }
        }
        protected void b1Click(object sender, EventArgs e)
        {
        if(Session["test"] == null)
            output.Text = "null";
        else
            Session["test"] = ""+((int)Session["test"]+1);
        }
    }
}

所以感觉就像是我错过的配置步骤。

1 个答案:

答案 0 :(得分:0)

所以问题是在新服务器上,页面的URL中有一个下划线。 做了一个解决方法,它就像一个魅力。