سؤال

أنا أتطلع لمعرفة كيف يمكنني استخدام IIS PowerShell Cmdlet New-Webapppool لتحديد إصدار إطار .NET للاستخدام. حاليًا ، يتخلف عن v2.0 ، ومع ذلك أنا أستخدم MVC ، وهذا لن يعمل لأن هذه ميزة V4.0. نريد حقًا أن يكون لكل موقع تجمع التطبيق الخاص به ، ويبدو أنه يجب علينا إنشاء تلك المجمعات يدويًا بسبب عدم القدرة على تكوينها عبر البرنامج النصي. هل هناك أي طريقة لأتمتة هذا؟

أخشى أن تكون الإجابة "لا يمكنك" ، لأن توثيق لا يبدو أنه يقدم أي معلمات لإعداده ، وتظهر Google القرفصاء ؛ إنه يعطيني انطباعًا بأن إعداد المواقع بطريقة نصية أمر مقبول ، وشيء ما حول تكوين تجمعات التطبيقات هو فقط "لم يتم القيام به". لا أستطيع أن أتخيل لماذا لا - إذا كنت تتم أتمتة جزء كبير من العملية ، فلماذا لا يمكنك أتمتة الجزء الرئيسي الآخر؟

أي شخص قد يكون لديه بعض البصيرة حول كيفية القيام بذلك عبر PowerShell سوف يساعدني كثيرًا.

هل كانت مفيدة؟

المحلول

مع تحميل وحدة WebAdMinistration التي تم تحميلها جرب هذا على تجمع قمت بإنشائه:

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top