Domanda

Il codice è simile al seguente:

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

Per qualche motivo non funziona in modo coerente sul server live. Tieni presente che funziona SEMPRE sulla mia macchina di sviluppo locale e SOMETIMES (circa 1 su 3 tentativi) funziona sulla macchina live. Quando fallisce sul server live la pagina viene ricaricata e tutti i viewstate vengono persi.

Ho un errore predefinito nel mio file webconfig e la pagina non viene mai reindirizzata a pagina di errore.

Bug coerenti sono facili da risolvere, ma qualcosa del genere non lo è.

Qualche idea su cosa potrebbe far funzionare questa pagina qualche volta e qualche volta no e / o perché il viewstate non viene mantenuto quando non funziona? Perché non riscontro lo stesso problema sul mio computer locale?

Ho provato a unire le due funzioni per vedere se chiamare la funzione esterna stava causando il problema ma sfortunatamente non ha cambiato nulla. Inoltre, il valore di IsOK non sembra influenzare se riceverò il bug o meno.

Ho rimosso tutto il codice nella funzione di caricamento della pagina per assicurarmi di risolvere i problemi correttamente ma sto ancora riscontrando lo stesso problema.

Qualsiasi idea sarà apprezzata.

Modifica: stavo per inviarlo così com'è ma ho deciso di provare quanto segue:

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

Se clicco alcune volte sul pulsante la pagina perde il valore viewstate dopo qualche tentativo ma non sempre. Quindi il problema principale qui sembra non essere un problema con il viewstate funziona correttamente tutto il tempo. Qualche idea?

Grazie.

È stato utile?

Soluzione

Prenderò un'ipotesi selvaggia qui e dirò che non stai usando sessioni appiccicose in produzione e hai più server web. Ma nello sviluppo hai un solo server. Stai utilizzando il bilanciamento del carico e ogni tanto vieni indirizzato a un server diverso con una macchina diversa nel tuo maching.config. L'app diventa boom.

O non è affatto così. :)

Se il problema persiste, puoi disattivare viewstate o sincronizzare le chiavi in ??machine.config e il problema dovrebbe scomparire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top