Unvereinbarkeiten mit dem Ansichtszustand / Funktion / Server-vs-Entwicklungsserver

StackOverflow https://stackoverflow.com/questions/290880

  •  08-07-2019
  •  | 
  •  

Frage

Der Code geht in etwa so:

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

Aus irgendeinem Grund funktioniert es nicht konsequent auf dem Live-Server. Beachten Sie, dass es auf meiner lokalen Entwicklungsmaschine funktioniert immer und MANCHMAL (Etwa 1 in 3 Versuchen) arbeitet an der Live-Maschine. Wenn es nicht auf dem Live-Server die Seite neu geladen und alle Ansichtszustand verloren.

Ich habe einen Standard-Fehler fangen in meiner webconfig Datei und die Seite wird nie zu dem umgeleitet Fehlerseite.

Konsequente Fehler sind leicht zu beheben, aber so etwas wie dies nicht ist.

Jede Idee, was diese Seite irgendwann funktioniert und nicht irgendwann machen könnte und / oder warum der Ansichtszustand nicht eingehalten werden, wenn es nicht funktioniert? Warum bin ich nicht das gleiche Problem auf meinem lokalen Rechner bekommen?

Ich habe versucht, die beiden Funktionszusammenführung zu sehen, ob die externe Funktion aufrufen verursache das Problem, aber es hat nichts leider ändern. Auch dann, wenn der Wert von IsOK nicht scheinen, zu beeinflussen, ob ich den Bug bekommen oder nicht.

Ich entfernte den gesamten Code in der Seitenladefunktion, um sicherzustellen, zu beheben richtig, aber ich bin immer noch das gleiche Problem bekommen.

Jede mögliche Idee geschätzt.

Edit: Ich war im Begriff, diese zu senden, wie, aber ich beschlossen, versuchen Sie Folgendes:

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

Wenn ich ein paar Mal auf die Schaltfläche klicken Sie auf die Seite verliert den Ansichtszustand Wert nach einigen Versuchen aber nicht immer. Also hier das Hauptproblem scheint mit dem Ansichtszustand ein Problem zu sein nicht richtig die ganze Zeit arbeiten. Jede Idee?

Danke.

War es hilfreich?

Lösung

Ich werde hier eine wilde Vermutung nehmen und sagen Sie nicht klebrig Sitzungen in der Produktion verwenden und mehr Web-Server haben. Aber in der Entwicklung haben Sie nur einen Server. Sie verwenden Load Balancing und jeder so oft Sie auf einen anderen Server mit einem anderen Machinekey in Ihrem maching.config gekickt. App geht Boom.

Oder das ist es nicht. :)

Wenn es das Problem ist, können Sie Ansichtszustand oder synchronisieren Sie die Schlüssel in Ihrem machine.config und das Problem sollte weggehen deaktivieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top