문제

코드는 다음과 같습니다.

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

어떤 이유로 든 라이브 서버에서 일관되게 작동하지 않습니다. 그것은 항상 내 지역 개발 기계에서 작동하며 때로는 3 번의 시도 중 약 1 명이 라이브 기계에서 작동한다는 점을 명심하십시오. 라이브 서버에서 실패하면 페이지 재장로드 및 모든 ViewState가 손실됩니다.

WebConfig 파일에 기본 오류 캐치가 있으며 페이지가 오류 페이지로 리디렉션되지 않습니다.

일관된 버그는 문제를 해결하기 쉽지만 이와 같은 것은 아닙니다.

이 페이지를 언젠가 작동시킬 수있는 것에 대한 아이디어와 언젠가는 작동하지 않을 때 ViewState가 유지되지 않는 이유는 무엇입니까? 로컬 컴퓨터에서 같은 문제가 발생하지 않는 이유는 무엇입니까?

외부 함수를 호출하는 것이 문제가 발생하는지 확인하기 위해 두 기능을 병합하려고 시도했지만 불행히도 아무것도 변경하지 않았습니다. 또한 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;        
}

버튼에서 몇 번 클릭하면 몇 번의 시도 후에는 페이지가 뷰 스테이트 값을 잃어 버립니다. 따라서 여기서 주요 문제는 ViewState가 항상 올바르게 작동하지 않는 문제인 것으로 보입니다. 아이디어가 있습니까?

감사.

도움이 되었습니까?

해결책

나는 여기서 거친 추측을하고 생산에 끈적 끈적한 세션을 사용하지 않고 여러 웹 서버가 있다고 말할 것입니다. 그러나 개발에는 서버가 하나뿐입니다. 당신은로드 밸런싱을 사용하고 있으며,마다 마하의 다른 기계 키가있는 다른 서버로 차게됩니다. 앱은 붐을 겪습니다.

아니면 전혀 그렇지 않습니다. :)

문제가있는 경우 viewstate를 끄거나 기계의 키를 동기화 할 수 있으며 문제가 사라질 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top