Несоответствия между viewstate / function / server и сервером разработки - PullRequest
0 голосов
/ 14 ноября 2008

Код выглядит примерно так:

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;
    }
}

По какой-то причине он не работает согласованно на реальном сервере. Имейте в виду, что он ВСЕГДА работает на моей локальной машине разработки и ИНОГДА (примерно 1 из 3 попыток) работает на живой машине. Когда это терпит неудачу на живом сервере страница перезагружается, и все состояния просмотра теряются.

У меня есть ошибка по умолчанию в моем файле 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;        
}

Если я несколько раз нажму на кнопку, страница потеряет значение состояния просмотра после нескольких попыток, но не всегда. Таким образом, основной проблемой здесь является проблема с работает правильно все время. Есть идеи?

Спасибо.

1 Ответ

1 голос
/ 14 ноября 2008

Здесь я сделаю дикое предположение и скажу, что вы не используете липкие сессии в работе и у вас есть несколько веб-серверов. Но в разработке у вас есть только один сервер. Вы используете балансировку нагрузки, и каждый раз вы попадаете на другой сервер с разными машинными ключами в вашем maching.config. Приложение идет бум.

Или это совсем не так. :)

Если это проблема, вы можете отключить viewstate или синхронизировать ключи в вашем machine.config, и проблема должна исчезнуть.

...