53

Tôi đang tìm cách xem cách sử dụng IIS PowerShell Cmdlet New-WebAppPool để chỉ định phiên bản Khuôn khổ .NET để sử dụng. Hiện tại, nó mặc định là v2.0, tuy nhiên tôi đang sử dụng MVC, và điều này sẽ không hoạt động vì đó là một tính năng v4.0. Chúng tôi thực sự muốn mỗi trang web có Hồ bơi ứng dụng riêng của mình và dường như chúng tôi phải tạo các hồ bơi đó theo cách thủ công do không có khả năng định cấu hình chúng thông qua tập lệnh. Có cách nào để tự động hóa điều này?Làm cách nào để đặt Phiên bản Khuôn khổ .NET khi sử dụng New-WebAppPool?

Tôi sợ câu trả lời sẽ là "bạn không thể," vì documentation dường như không cung cấp bất kỳ thông số nào để đặt cài đặt và Google đang tăng tốc độ ngồi xổm; nó mang lại cho tôi ấn tượng rằng chỉ thiết lập các trang web theo cách viết kịch bản là chấp nhận được, và một cái gì đó về cấu hình Application Pools chỉ là "chưa xong". Tôi không thể tưởng tượng tại sao không - nếu bạn đang tự động hóa một phần chính của quá trình, tại sao bạn không thể tự động hóa phần chính khác?

Bất cứ ai có thể có một số thông tin chi tiết về cách thực hiện điều này thông qua PowerShell sẽ giúp tôi rất nhiều.

Trả lời

90

Với Module WebAdministration nạp thử này trên một hồ bơi mà bạn đã tạo:

Set-ItemProperty IIS:\AppPools\<pool_name> managedRuntimeVersion v4.0 
+23

Có một danh sách các thuộc tính settable ở đây: http : //msdn.microsoft.com/en-us/library/aa347554 (v = VS.90) .aspx –

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  
    } 
    } 
} 

Bạn có thể tải về kịch bản chi tiết từ how to set the IIS Application Pool to specify version of the .NET Framework