우리 서버에 게시 된 ASP.NET C# 웹 응용 프로그램이 있습니다. 3 페이지로 구성되어 있으며 각 페이지에는 3 페이지 로그인과 같은 양식이 있습니다. 세 번째 페이지의 양식이 확인되면 사용자를 다른 사이트로 보냅니다. 여기에 약간의 그림은 내가 더 잘 설명 할 수있다 :버튼이 "이 페이지를 표시 할 수 없습니다."로 리디렉션되는 경우가 있습니다.
NamePage ---> DateOfBirthPage ---> IDNumberPage ---> OtherSite이 우리의 개발 테스트 및 스트레스 모두에서 좋은 일하고있다
테스트. 그러나 IDNumberPage의 "다음"버튼을 클릭 할 때마다 프로덕션 환경에 넣은 후 사용자는 "이 페이지를 표시 할 수 없습니다"라는 메시지와 함께 "연결 문제 진단"단추가 표시됩니다. 한 명의 사용자에게 이와 같은 문제가 발생하면 모든 사용자에게 동일한 문제가 발생합니다 (한 번 발생하면 아무도 완전히 인증 할 수 없음). NamePage 및 DateOfBirthPage는 항상 작동하며 충돌이 발생하면 IDNumberPage 링크가 변경되지 않아 충돌이 OtherSite로 리디렉션되지 않고 응용 프로그램의 앞쪽에서 발생하고 있음을 나타냅니다. 친숙한 HTTP 오류가 꺼져 있지만 페이지에 오류가 표시되지 않습니다. 서버에 들어가서 응용 프로그램을 다시 시작하면 다시 작동합니다.
좌절감을주는 부분은 어떻게 발생했는지/왜 보이는지를 알기 위해이 오류를 복제 할 수 없다는 것입니다. 주목할 만하다
어떤 것들은 :
- 각 페이지는 MS SQL 서버 데이터베이스에 하나의 쿼리를 사용하는 각 페이지 4 개 세션 변수 (텍스트 상자 형태로 입력 된 것을 포함하는 유일한 작은 문자열까지 통과 이전 페이지에서)
- 마지막 "다음"버튼을 클릭하면 세션이 중단됩니다.
- 모든 결과 집합/연결/명령은 리디렉션 전에 닫힙니다.
- 리디렉션이 모두가 매우 모호한 경우
Response.Redirect(siteName, false)
죄송 사용하여 오버로드 된 버전을 사용할 수 있지만, 문제 자체가 우리에게서 숨어의 이상한 좋은 일을하고있다. 우리는 테스트 요청 (한꺼번에 많이, 일정 기간 동안 여러 번)과 다양한 로그인 조합/일반적으로 페이지를 무너 뜨리려는 시도로 서버를 망치로 시험해 보았습니다. 누구든지이 문제를 진단/수정/복제하려고 시도 할 것을 제안 할 수 있습니까?
편집 : IDNumberPage의에 클릭 기능 코드는 숨김이 문제를 일으키는 :
{ SqlConnection dbconn = new SqlConnection(Application["dbconn"].ToString());
SqlCommand sqlValidate = dbconn.CreateCommand();
dbconn.Open();
sqlValidate.CommandText = "SELECT lastName, csn FROM Demographics WHERE lastName = '" + Session["lastName"].ToString() + "' " +
"AND dob = '" + Session["dobCheck"].ToString() + "' AND mrn = " + strMRN;
SqlDataReader results = sqlValidate.ExecuteReader();
if (results.HasRows)
{
string csn = "";
while (results.Read())
{
if (!String.IsNullOrEmpty(results["csn"].ToString()))
{
csn = results["csn"].ToString();
break;
}
}
string url = Application["surveyUrlString"] + "&lastname=" + Session["lastName"].ToString() + "&mrn=" + strMRN + "&dobday=" + Session["dobday"].ToString()
+ "&dobmonth=" + Session["dobmonth"].ToString() + "&dobyear=" + Session["dobyear"].ToString() + "&csn=" + csn;
results.Close();
dbconn.Close();
Response.Redirect(url, false);
}
코드/사이트를 보지 않고서는 뭔가 제안하기가 정말 어렵습니다. 테스트 버전에 대한 링크를 보낼 수있는 기회가 있습니까? –
모든 것이 인트라넷이므로 링크 할 수 없지만 일부 코드로 편집 할 것입니다 – rownage
어쩌면 sitename이 올바른 형식이 아니며 왜 false를 true로 설정하려고합니까? – Aristos