2016-08-31 5 views
0

私はこの古いasp.netアプリケーションを持っていますが、何らかの理由でここには入りません。web.configの間違ったデータベースを検出した後、application_beginでasp.netアプリケーションを終了してください。

現時点では、ビルドサーバーの準備はできていません.Global.asaxのコードでdbがプロダクションDBではないことが検出されたときに、アプリケーションのロードを防ぐ簡単な方法を探しています。

私はこのようなものを使用します。

foreach (ConnectionStringSettings s in ConfigurationManager.ConnectionStrings) 
{ 
    if (s.ConnectionString.Contains(ProdDataBaseServer) == ValidateCondition) 

     return false; 
    } 

私の質問はこれを行うには良い方法があるとグローバルasaxのどのイベントがベストフィットは、このチェックを処理するだろうとは?事前

B

+0

サイトが間違ったデータベースに接続されている場合はどうしますか?ユーザーに通知しますか?激しくクラッシュする?通常どおりに作業しますが、データベース操作は実行しませんか? – Culme

+0

サイトをロックします。もちろんこれは決して起こらないはずですが、起こった場合は、ユーザーが私たちに報告できる標準的なメッセージでサイトをロックしたいだけです –

答えて

0

おかげで、私は迷信(すべての手段が行うことで)呼び出しますが、私はそれを避けることができるかどうかSESSION_STARTのApplication_Startに完全に依存したくないでしょう。私はまだユーザーが現場に出るたびにそれが起こるとは信じていません。

ページが継承する何らかのフォームのBaseオブジェクトを使用している場合は、Base-PageクラスのOnInitなどの初期イベントでチェックを実行できます。 または、各ページ呼び出しでいくつかのタイプのユーザー検証を実行する場合は、ユーザーチェックとともにデータベースチェックを実行できます。 私はおそらく、「サイトがダウンしている」という(html)ページにユーザーをリダイレクトし、セッションやそのすべてを強制終了します。

また、実行中にこの問題が発生しない場合でも、開発者がリリースを行う前にコードを変更するのを忘れているため、いつもコンパイル時に解決できる可能性があります。ビルド直後にチェックを行うことができます。 web.configに正しい(または間違った)データベースに固有の特定の文字列が含まれているかどうかをチェックするポストビルドスクリプトを実行します。

if (theFileAsString.Contains("Data Source=THE_WRONG_ONE")){ 
    // Perform actions to inform user that this compilation should not be released 
} 
関連する問題