2

アプリケーション変数として格納された接続文字列を持ち、Application_OnStart()イベントで初期化される従来の ASP アプリケーションがあります。

この接続文字列を毎晩深夜に変更し、他のデータベースを指すようにしたいと考えています。

接続文字列に XML を使用し、タスク スケジューラで C# EXE を使用してこれを変更し、IIS を再起動して、最後に XML から変更された接続文字列を読み取るようなものを考えましたが、Application_OnStart()ユーザーがセッションを失うことは望ましくありません。また、この接続文字列が使用されている場所は非常に多いため、それらの場所のそれぞれで (C# COM コンポーネントを使用して) XML を読み取るロジックを追加することは考えられません。

これを達成する方法はありますか?この接続文字列を保存して、アプリケーションを再起動せずに更新できる場所に使用するストレージ/イベントなどはありますか?

どんな助けでも本当に感謝しています。

4

2 に答える 2

1

アプリケーションの開始時に、ファイル システム ウォッチャーを設定ファイルに追加して、設定ファイルが変更されたときに起動されるようにすることができます。そのイベント ハンドラーで、接続文字列を表す変数を変更できます。

次に、実行可能ファイルをタスク スケジューラに配置して、構成ファイルを変更できます。

于 2013-04-19T14:03:34.653 に答える
1

コードを使用して変更するアプリケーションレベルの変数を使用できます-ユーザーのセッションがリセットされるとは思いません:

<%@ Language="VBScript" %> 
<% 
Application.Lock  
Application("ConnString") = "new connection string"
Application.Unlock  
%>

変更を行う ASP ページを作成できます。これが自動化できるものであれば、そのページを呼び出してスケジュールするための簡単なものを書くことができます。

于 2013-04-21T17:06:18.793 に答える