Pregunta

El código va más o menos así:

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

Por alguna razón, no funciona de manera consistente en el servidor en vivo. Tenga en cuenta que SIEMPRE funciona en mi máquina de desarrollo local y A VECES (aproximadamente 1 de cada 3 intentos) funciona en la máquina en vivo. Cuando falla en el servidor en vivo la página se vuelve a cargar y se pierde todo el estado de visualización.

Tengo un error predeterminado en mi archivo webconfig y la página nunca se redirige a página de error.

Los errores consistentes son fáciles de solucionar, pero algo como esto no lo es.

Alguna idea de lo que podría hacer que esta página funcione alguna vez y otras no, y por qué ¿El estado de vista no se mantiene cuando no funciona? ¿Por qué no tengo el mismo problema en mi máquina local?

Intenté fusionar las dos funciones para ver si llamar a la función externa estaba causando el problema pero desafortunadamente no cambió nada. Además, el valor de IsOK no parece influir en si obtendré el error o no.

Eliminé todo el código en la función de carga de la página para asegurarme de solucionar el problema correctamente pero sigo teniendo el mismo problema.

Cualquier idea será apreciada.

Editar: iba a enviar esto como está pero decidí intentar lo siguiente:

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

Si hago clic varias veces en el botón, la página pierde el valor del estado de visualización después de algunos intentos pero no siempre. Entonces, el problema principal aquí parece ser un problema con el estado de vista no funcionando correctamente todo el tiempo. ¿Alguna idea?

Gracias.

¿Fue útil?

Solución

Voy a adivinar y decir que no estás usando sesiones fijas en producción y que tienes varios servidores web. Pero en desarrollo solo tienes un servidor. Está utilizando el equilibrio de carga y cada cierto tiempo es expulsado a un servidor diferente con una clave de máquina diferente en su maching.config. La aplicación se dispara.

O esto no lo es en absoluto. :)

Si es el problema, puede desactivar viewstate o sincronizar las claves en su machine.config y el problema debería desaparecer.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top