如何在使用New-WebAppPool时设置.NET Framework版本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (38)

我期待看到如何使用IIS PowerShell Cmdlet New-WebAppPool指定要使用的.NET Framework版本。目前,它默认为v2.0,但是我使用的是MVC,并且这不起作用,因为这是一个v4.0功能。我们真的希望每个站点都拥有自己的应用程序池,而且由于无法通过脚本配置它们,因此我们似乎必须手动创建这些池。有什么办法可以自动化吗?

恐怕答案会是“你不行”,因为文档似乎没有提供设置它的任何参数,而Google正在蹲下; 它给我的印象是只能以脚本方式设置站点是可以接受的,而关于配置应用程序池的一些事情只是“未完成”。我无法想象为什么不能 - 如果您将流程的一个主要部分自动化,为什么不能自动化其他主要部分?

任何人如果能够通过PowerShell了解如何做到这一点,将会大大帮助我。

提问于
用户回答回答于

在Web管理模块加载的情况下,请在创建的池上尝试以下操作:

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0
用户回答回答于
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的版本

扫码关注云+社区