70

IIS PowerShell コマンドレットNew-WebAppPoolを使用して、使用する .NET Framework のバージョンを指定する方法を探しています。現在、デフォルトで v2.0 になっていますが、私は MVC を使用していますが、これは v4.0 の機能であるため機能しません。各サイトに独自のアプリケーション プールを持たせたいのですが、スクリプトで構成できないため、これらのプールを手動で作成する必要があるようです。これを自動化する方法はありますか?

残念ながら、その答えは「できません」ということになると思います。なぜなら、ドキュメンテーションには、それを設定するためのパラメータが何も提供されていないようで、Google はしゃがんでいるからです。スクリプト化された方法でサイトをセットアップすることだけが許容され、アプリケーション プールの構成に関する何かが単に「行われていない」という印象を私に与えています。なぜそうしないのか想像もつきません。プロセスの主要な部分の 1 つを自動化する場合、他の主要な部分を自動化できないのはなぜでしょうか。

PowerShell を介してこれを行う方法について何らかの洞察を持っている人なら誰でも、私を大いに助けてくれるでしょう。

4

4 に答える 4

114

WebAdministration モジュールをロードして、作成したプールでこれを試してください。

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0
于 2010-11-19T21:00:58.623 に答える
1
Import-Module WebAdministration
#Get all web sites
dir IIS:\Sites | ForEach-Object {
  #Go to the app pools root
  cd IIS:\AppPools\
  if (!(Test-Path $_.Name -pathType container))
  {
    #Create the app pool and set .net framework version
    $appPool = New-Item $_.Name
    $appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value $IISAppPoolDotNetVersion
    #Go to the web sites root
    cd IIS:\Sites\
    $iisApp = Get-Item $_.Name
    $iisApp | Set-ItemProperty -Name "applicationPool" -Value $_.Name
  }
  else {
    $dotNetVersion = (Get-ItemProperty $_.Name managedRuntimeVersion).Value
    if ($dotNetVersion -ne $IISAppPoolDotNetVersion){
        #Get the app pool and set .net framework version
        $appPool = Get-Item $_.Name
        $appPool | Set-ItemProperty -Name "managedRuntimeVersion" -Value $IISAppPoolDotNetVersion       
    } 
  }
} 

詳細スクリプトは、IIS アプリケーション プールを設定して .NET Framework のバージョンを指定する方法からダウンロードできます。

于 2016-11-15T05:38:53.317 に答える