كيف يمكنني تعيين إصدار .NET Framework عند استخدام Webapppool الجديد؟
-
26-09-2019 - |
سؤال
أنا أتطلع لمعرفة كيف يمكنني استخدام 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