Windows Server 2016 does indeed support .NET Framework 3.5.1, though Microsoft's documentation may not explicitly list it. The framework is available as an installable feature rather than being pre-installed, which aligns with Microsoft's component-based approach since .NET 3.5 SP1.
While Microsoft's support documentation doesn't mention Windows Server 2016, the framework follows the Windows component support lifecycle. Since Server 2016 is still in extended support (until January 2027), .NET 3.5.1 receives the same support level.
Here are three ways to install .NET 3.5.1 on Windows Server 2016:
1. Server Manager GUI
1. Open Server Manager
2. Select "Add roles and features"
3. Navigate to Features > .NET Framework 3.5 Features
4. Check the box and complete installation
2. PowerShell Command
Install-WindowsFeature -Name NET-Framework-Core -Source D:\sources\sxs
Note: Replace "D:" with your installation media drive letter.
3. DISM Command (Offline Installation)
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs
To verify successful installation:
Get-WindowsFeature -Name NET-Framework-Core | Select-Object Installed
Common issues and solutions:
- Error 0x800f081f: Missing installation source - specify the correct source path
- Dependency errors: Ensure Windows Update service is running
- Port conflicts: Check if port 80 is available for Windows Update
While .NET 3.5.1 runs on Server 2016, consider these factors:
- Performance impact when running alongside .NET 4.x
- Security updates are bundled with Windows updates
- Some legacy applications may require additional compatibility settings
For new development, consider upgrading to supported frameworks:
// Example: Upgrading a WCF service from .NET 3.5 to 4.8
// Original config in web.config:
<system.serviceModel>
<services>
<service name="MyService">
<endpoint address=""
binding="basicHttpBinding"
contract="IMyService" />
</service>
</services>
</system.serviceModel>
// Modern approach using CoreWCF:
services.AddServiceModelServices()
.AddServiceModelMetadata()
.AddServiceModelWebServices();
However, if you must maintain .NET 3.5.1 compatibility, ensure proper isolation from newer frameworks to avoid conflicts.
html
Despite lacking explicit documentation on Microsoft's official KB articles, .NET Framework 3.5.1 (a subset of 3.5 SP1) is indeed supported on Windows Server 2016 as an installable Windows component. This aligns with Microsoft's component-based support policy where framework versions inherit the host OS's lifecycle.
To confirm installation status, run this PowerShell cmdlet:
Get-WindowsFeature -Name NET-Framework-Core | Where-Object {$_.InstallState -eq "Installed"}
For systems where it's not pre-installed (common in Server Core deployments), execute:
Install-WindowsFeature NET-Framework-Core -Source \\network\share\sxs
When dealing with air-gapped servers, mount the Windows Server 2016 ISO and run:
Dism /online /enable-feature /featurename:NetFx3 /All /Source:D:\sources\sxs /LimitAccess
Check the registry key for version confirmation:
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5" -Name Version | Select-Object Version
Expected output for 3.5.1 should show 3.5.30729.4926 or higher.
Error 0x800f081f typically indicates missing source files. Resolve by:
- Specifying the
-Source
parameter pointing to \sxs folder - Using Group Policy to configure alternative source paths
While 3.5.1 runs on Server 2016, note these constraints:
- WCF services require additional Windows Features
- ASP.NET 2.0 apps need IIS 6 Metabase compatibility mode
- Windows Identity Foundation (WIF) requires separate installation
For automated deployments via DSC:
Configuration InstallDotNet35 {
Node "localhost" {
WindowsFeature NetFx3 {
Name = "NET-Framework-Core"
Ensure = "Present"
Source = "\\build-server\WS2016$\sources\sxs"
}
}
}