- PR -

WMIでIISのリダイレクト先を元に戻す方法

1
投稿者投稿内容
へるまろ
ベテラン
会議室デビュー日: 2003/02/04
投稿数: 57
お住まい・勤務地: 東京
投稿日時: 2007-11-21 14:41
IIS6.0上で動いているASP.NET Webアプリがあります。
これをメンテナンスなどの理由でしばらくユーザにアクセスさせたくない場合に、このWebアプリへアクセスがあった場合は、一時的にメンテナンス画面にリダイレクトさせ、作業が終わったら元に戻すという処理を行いたいと思っています。

以下のサイトを参考にしてメンテナンス画面にリダイレクトさせるバッチについては作成できました。http://mikehadlow.blogspot.com/2007/04/iis-redirects-by-setting-httpredirect.html
このバッチを実行した後は、IIS管理ツールの仮想ディレクトリタブにある「このリソースへの接続時に使用されるコンテンツの場所」のラジオボタンが「URLへのリダイレクト」に変更され、正常にメンテナンス画面にリダイレクトされるところまでは確認しました。。

次に今度はメンテナンス作業が終わった後に元に戻したいのですが、どうもこの方法が良く分かりません。やりたいことは元の設定通り、IIS管理ツールの仮想ディレクトリタブにある「このリソースへの接続時に使用されるコンテンツの場所」のラジオボタンが「このコンピュータにあるディレクトリ」に設定できれば良いのですが、これはどのように行えば良いのでしょうか?

MSDNのメタベースプロパティリファレンスを見たところ、Pathプロパティに物理パスを設定してやれば良いかと思いバッチを作り実行してみましたが、ラジオボタンが元に戻ってくれませんでした。

もしやり方をご存じであればご教授願えませんでしょうか?
宜しくお願いいたします。

【Pathを使ったサンプル】
コード:
ConnectionOptions options = new ConnectionOptions();
options.Username = userName;
options.Password = password;
options.Authentication = AuthenticationLevel.PacketPrivacy;
ManagementPath path = new ManagementPath();
path.Server = serverName;
path.NamespacePath = "root/MicrosoftIISv2";
ManagementScope scope = new ManagementScope(path, options);

using (ManagementObject obj = new ManagementObject(scope, new ManagementPath("仮想ディレクトリパス"), null))
{
    obj.SetPropertyValue("Path", "アプリへの物理パス");
    obj.Put();
}

どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-11-21 15:12
ASP.NETのバージョンが2.0ならApp_Offline.htmを利用するのが便利だと思います。
http://dotnetfan.org/blogs/dotnetfanblog/archive/2005/10/07/413.aspx

#バージョン1.1では使えませんが。
1

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