【问题标题】:Inconsistencies with viewstate/function/server vs development server视图状态/功能/服务器与开发服务器不一致
【发布时间】:2008-11-14 17:57:58
【问题描述】:

代码如下:

protected bool IsOKToSend()
{
    bool IsOK = true;        
    lblErrorSending.Visible = false;
    if (txtUserName.Text == "" )
    { 
    lblErrorSending.Text = "Please enter your username before sending.";
    IsOK = false;
    }
    return IsOK;
}

    protected void btnSubmit_Click(object sender, EventArgs e)
{

    if (IsOKToSend())
    {
        adsUser.Insert();
        Response.Redirect("complete.aspx");
    }
    else
    {
        lblErrorSending.Visible = true;
    }
}

由于某种原因,它不能在实时服务器上始终如一地工作。 请记住,它总是在我的本地开发机器上工作,有时 (大约三分之一的尝试)在现场机器上工作。当它在实时服务器上失败时 页面重新加载,所有视图状态都丢失了。

我的 webconfig 文件中有一个默认错误捕获,并且该页面永远不会重定向到 错误页面。

一致的错误很容易解决,但这样的问题却不是。

关于什么可以使此页面有时有效,有时无效和/或为什么的任何想法 当它无法工作时,视图状态不会保留吗? 为什么我在本地机器上没有遇到同样的问题?

我尝试合并这两个函数,看看调用外部函数是否导致 问题,但不幸的是它并没有改变任何东西。另外,IsOK 的值似乎不会影响我是否会得到这个错误。

我删除了页面加载功能中的所有代码以确保排除故障 正确,但我仍然遇到同样的问题。

任何想法都会受到赞赏。

编辑:我打算按原样发送,但我决定尝试以下方法:

protected void btnSubmit_Click(object sender, EventArgs e)
{
    bool IsOK = true;        
    lblErrorSending.Visible = false;
    if (txtUserName.Text == "" )
    { 
        lblErrorSending.Text = "Please enter your username before sending.";
        IsOK = false;
    }
    lblErrorSending.Visible = !IsOK;        
}

如果我在按钮上单击几次,页面确实会丢失视图状态值 经过几次尝试,但并非总是如此。 所以这里的主要问题似乎是视图状态的问题,而不是 一直正常工作。有什么想法吗?

谢谢。

【问题讨论】:

    标签: c#-2.0 viewstate


    【解决方案1】:

    我会在这里大胆猜测一下,您没有在生产中使用粘性会话,并且您有多个 Web 服务器。但是在开发中,您只有一台服务器。您正在使用负载平衡,并且您经常被踢到另一台服务器,并且在您的 macing.config 中使用不同的机器密钥。应用程序蓬勃发展。

    或者这根本不是。 :)

    如果是问题所在,您可以关闭 viewstate 或同步 machine.config 中的密钥,问题应该会消失。

    【讨论】:

    • 感谢您的尝试。我没有在 dev 和 live 上使用会话。实时服务器是单个服务器,因此不幸的是它不会是负载平衡问题。请问还有什么想法吗?
    • 我看不出这怎么可能是代码问题,但我在这里询问以防万一。当我开始这个项目时,我尝试使用 asp session,但每隔几分钟它们就会被主机丢失。我猜这也是一个类似的主机问题,所以我和他们开了一张票。您将获得绿色支票以寻求帮助。
    • 祝你好运。我希望你能深入了解它。
    猜你喜欢
    • 1970-01-01
    • 2018-07-24
    • 2010-09-25
    • 2022-10-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 2017-01-10
    相关资源
    最近更新 更多