私のサーバーに公開されているASP.NET c#Webアプリケーションがあります。それは3ページで構成され、それぞれに3ページのログインのようなフォームがあります。 3番目のページのフォームが検証されると、ユーザーは別のサイトに送信されます。ここで少し図はので、私はそれをよりよく説明することができます:ボタンが「このページを表示できません」にリダイレクトされることがあります
NamePage ---> DateOfBirthPage ---> IDNumberPage ---> OtherSiteこれは、我々の開発・テストとストレスのすべてにおいて素晴らしい仕事をしている
テスト。ただし、IDNumberPageの[次へ]ボタンをクリックすると、「このページを表示できません」と表示され、「接続の問題を診断する」ボタンが表示されることがあります。これが1人のユーザーに対して発生すると、同じ問題がすべてのユーザーに発生します(一度発生すれば誰も完全に認証できません)。 NamePageとDateOfBirthPageは常に動作し、クラッシュが発生すると、IDNumberPageリンクは変更されず、OtherSiteにリダイレクトされた後ではなく、アプリケーションのこの側でクラッシュが発生していることが示唆されます。私はフレンドリーなHTTPエラーをオフにしていますが、ページにエラーを表示していません。サーバに入ってアプリケーションを再起動すると、再び動作します。
わかりやすい部分は、このエラーをどのように/なぜ発生しているのか見るために複製できないことです。
注目すべきいくつかの点:
- 各ページには、MS SQL Serverデータベース
- に1つのクエリを使用して各ページには4つのセッション変数テキストボックスフォームに入力されたものを含む(わずかなストリングスまで渡します前のページにある)
- 最後の「次へ」ボタンをクリックするとセッションが中断されます。
- リダイレクトする前にすべてのresultsets/connections /コマンドを閉じます。このすべてが非常にあいまいですが、問題自体は私たちから隠れの妙に良い仕事をしている場合
- リダイレクトは
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
おそらくサイト名が正しくフォーマットされていない可能性があります。 – Aristos