- PR -

[ASP.NET]サイトメンテナンス中の処理の簡略化について

1
投稿者投稿内容
platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2004-08-05 16:55
よく、どのサイトでも、データベースのメンテナンスや、サーバの
メンテナンスの実施中に、
『現在、メンテナンス中です・・・』等のメッセージ的な
画面を出すことがありますよね。

[ASP.NET]で管理されているサイトで、メンテ中の
処理、メンテ終了後の再開について、運営上の簡素化を
図るにはどのようなテクニックが楽でしょうか?
知恵を貸してください。宜しくお願いします。

以下の文中ではトップページをindex.aspx,本来のサービスのサイトをservとします。
なお、実際のサイトではデータベースを使用しますが、
servにおいては、データベースは利用しないものとします。

【考えてみた案】
サイト全体でアプリケーション変数( flag ) を持つ。
flag=1ならサービス中、flag=0なら工事中とする。
サイト内の全ページの共通ロジックとして、flag=0なら常に
index.aspxへ強制リダイレクトする処理を入れておく。
index.aspxではflag=0なら、メンテナンス中の案内を出す。

ただ、アプリケーション変数をWeb.Configから読み出すとすると、
IISをリスタートしないといけないだろうし、
リスタートが不可なら、flag = 1⇒0にする専用のページを
作っておかないといけないですよね。


【考えてみた案その2】
トップページとしてindex.aspxの他、
別途、工事中であることを示す静的なindex.htmを用意しておいて、
IIS全体のフィルタマッピング
(ちょっと今名前を度忘れしましたがISAPIでしたっけ)
では、aspxを禁止する。
(実際にはその他、jpgなども禁止する必要があると思いますが、
 基本的な考え方としてaspxを禁止)
サイトのデフォルトページをindex.htmに設定し、メンテナンス
終了後、index.aspxに変更する。
Moo
大ベテラン
会議室デビュー日: 2004/04/12
投稿数: 118
お住まい・勤務地: 地球・港
投稿日時: 2004-10-08 12:19
global.asaxで定義してしまうというのはいかがでしょうか?
セッションの開始と同時にメンテナンスのお知らせページに移動するように
すれば、ブックマークなどでの飛び込みにも対処できると思うのですが。

サンプルは...こんな感じでしょうか。
有無を言わさずMSFTページに飛びます。
これをメンテナンスのお知らせページに移動するようにすればOKです
コード:

<script language="vb" runat="server">
Sub Application_BeginRequest(Sender as Object, E as EventArgs)
If True then
Response.Redirect("http://www.microsoft.com/")
End If
End Sub
</script>




_________________
Mooは牛の鳴き声。

[ メッセージ編集済み 編集者: Moo 編集日時 2004-10-08 12:26 ]
1

スキルアップ/キャリアアップ(JOB@IT)