แอปพลิเคชัน Windows สมัยใหม่ส่วนใหญ่ต้องการ .NET Framework เพื่อทำงาน Server Manager ใน Windows Server 2012 R2 อนุญาตติดตั้ง .NET Framework 2 รุ่นพร้อมกันคือ 3.5 และ 4.5 การติดตั้ง .NET 4.5 ไมมักมีปัญยา แต่ .NET 3.5 มักล้มเหลว
สาเหตุ
ลองติดตั้ง .NET 3.5 ด้วยการตั้งค่ามาตรฐาน จะได้ Error: "Installation of one of more roles, role services or features failed. The source files could not be found…"
เหตุผล: ไฟล์ Binary ของ .NET Framework 3.5 ไม่อยู่ใน Local Cache (Features on Demand Concept เพื่อลดพื้นที่ดิสก์) ตรวจสอบด้วย PowerShell:
Get-WindowsFeature *Framework* → แสดง Install State: Removed
โดยค่าเริ่มต้น Server Manager พยายามดึงไฟล์จาก Windows Update ผ่าน Internet (ไม่ใช่ WSUS ภายใน) หาก Server ไม่มี Internet → ล้มเหลว ต้องระบุ Path ไปยัง OS Distribution
วิธีติดตั้งแบบ Manual
- ใน Server Manager คลิก Specify an alternative source path ระบุ Path ไปยัง Folder ที่มีไฟล์ติดตั้ง Windows Server 2012 R2 (ต้องเป็น Version, Edition, Language, Updates เดียวกัน) เช่น D:\source\sxs
- หรือใช้ Command Prompt (Admin):
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess - PowerShell:
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
คำอธิบายพารามิเตอร์ DISM: /Online = อัปเกรด OS ปัจจุบัน, /enable-feature/featurename:NetFX3/all = ติดตั้ง .NET 3.5 พร้อมฟีเจอร์ทั้งหมด, /Source = Path ไปยัง Distribution, /LimitAccess = ห้ามเข้าถึง Windows Update
ตั้งค่า Alternative Source Path แบบถาวร
- Registry: RepairContentServerSource ใน HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing
- Group Policy: Specify settings for optional component installation and component repair (Computer Configuration → Administrative Templates → System) Enable → ระบุ Alternative source file path → ติ๊ก Never attempt to download payload from Windows Update
ตรวจสอบการติดตั้ง
ไปที่ C:\Windows\Microsoft.NET\Framework64 ดูว่าโฟลเดอร์ v3.5 ปรากฏหรือไม่
หากยังไม่สำเร็จ ลองวิธีต่อไปนี้
- หลังติดตั้ง Updates บ้าง Build ของ OS อาจไม่ตรงกับ Distribution Image → Error 0x800f081f ลองติดตั้ง .NET Online: Backup WU Settings → ลบ Registry Key HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate → Restart WU Service →
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All→ คืนค่า WU Settings - อนาคตใช้โฟลเดอร์
C:\Windows\winsxsจาก Server นี้ ติดตั้งบน Server อื่นรุ่นเดียวกัน: Copy ไป C:\tmp\winsxs →dism /online /enable-feature /featurename:NetFX3 /all /Source:C:\tmp\winsxs /LimitAccess - หากติดตั้ง Language Packs → Uninstall ก่อนด้วย lpksetup
- ตรวจสอบ Installed Updates ว่ามี Patch สำหรับ NET 3.5 หรือไม่ → Uninstall แล้ว Reboot ลองใหม่