2012年10月6日土曜日

WindowsServer2003でW3SVCサービスを再起動せずに仮想ディレクトリの.NET Frameworkのバージョンを変更する方法

長いタイトル。

仮想ディレクトリの.NET Frameworkのバージョンを2→4に上げようとしたら

Framework バージョンを変更するには W3SVC サービスを再起動する必要があります。

などとというメッセージが出た。ええいやってしまえ!と再起動したかったけど、本番サーバーなのでそうもいかず。


W3SVCを再起動せずにバージョンを変更するには aspnet_regiis.exe を使うらしい。

たぶんここ↓で調べた(昔のメモなのでよく覚えてない)
http://stackoverflow.com/questions/1804208/how-do-you-work-out-the-iis-virtual-path-for-an-application


.NET Framework4の aspnet_regiis.exe は下記のフォルダにあった。
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319


■手順

1.-lk オプションでIIS上のパスを調べる。
aspnet_regiis.exe -lk

MSDNによると -lk オプションは

ASP.NET が割り当てられている、すべての IIS メタベース キーのパスとバージョンを一覧表示します。

 フーン( ´_ゝ`)


実行するとこんなの↓が一覧でずらずら出てくる
W3SVC/<数値>/ROOT/<アプリケーション名>/


2.-s と -norestart オプションに 1. で調べたパスをつけて設定完了
aspnet_regiis.exe -norestart -s "W3SVC/<数値>/ROOT/<アプリケーション名>/"

MSDNによると -s オプションは

Aspnet_regiis.exe に関連付けられた ASP.NET ISAPI バージョンをポイントするスクリプト マップを、指定したアプリケーション ルート パスとそのサブディレクトリ内のすべての ASP.NET アプリケーションにインストールします。ASP.NET ISAPI の以前のバージョンを使用する、指定したパス以下にある既存のスクリプト マップは、すべて更新されます。

なるほどよくわからない!

実行したらちゃんとバージョン変ってたのでよしとする!(それでいいのか)

0 件のコメント:

コメントを投稿