コマンドラインから ASP.NET4 を有効化する
最近いろいろ試してみたのでメモ。基本的に Windows 7 SP1 でしか動作確認してない。
以下の操作はすべて管理者権限で実行すること。
IISとASP.NETの有効化
Windows コンポーネントなので ocsetup かと思ったが、 DISM コマンドでいけた。ただし DISM コマンドは結構重いので、無効化されてる場合だけ有効化するようにした。
SET FEATURE=IIS-WebServerRole dism /online /get-features /format:table | findstr /i "%FEATURE%" | find /i "有効" IF "%ERRORLEVEL%"=="1" dism /online /enable-feature /featurename:"%FEATURE%" SET FEATURE=IIS-ISAPIFilter dism /online /get-features /format:table | findstr /i "%FEATURE%" | find /i "有効" IF "%ERRORLEVEL%"=="1" dism /online /enable-feature /featurename:"%FEATURE%" SET FEATURE=IIS-ISAPIExtensions dism /online /get-features /format:table | findstr /i "%FEATURE%" | find /i "有効" IF "%ERRORLEVEL%"=="1" dism /online /enable-feature /featurename:"%FEATURE%" SET FEATURE=IIS-NetFxExtensibility dism /online /get-features /format:table | findstr /i "%FEATURE%" | find /i "有効" IF "%ERRORLEVEL%"=="1" dism /online /enable-feature /featurename:"%FEATURE%" SET FEATURE=IIS-ASPNET dism /online /get-features /format:table | findstr /i "%FEATURE%" | find /i "有効" IF "%ERRORLEVEL%"=="1" dism /online /enable-feature /featurename:"%FEATURE%"
ASP.NET4の有効化
IIS と .NET のインストール順によっては ASP.NET が有効化されない場合がある。
aspnet_regiis -lv で有効化されている ASP.NET のバージョンが表示されるので、それで ASP.NET4 がなければ有効化する。
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -lv | find /i "4.0.30319.0" IF "%ERRORLEVEL%"=="1" %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
上記で ASP.NET4 が有効化されるが、 DefaultAppPool は v2 のままなので appcmd で v4 にする。
%windir%\system32\inetsrv/appcmd list apppool "DefaultAppPool" | find /i "v4.0" IF "%ERRORLEVEL%"=="1" %windir%\system32\inetsrv/appcmd set apppool "DefaultAppPool" /managedRuntimeVersion:v4.0"