问题

如今,仍然有许多程序和应用需要依靠.NET 3.5 framework 来运行。在Windows Server 2012中,微软提供了.NET 3.5 和.NET 4.5的安装选项以为你的应用程序提供支持。但在安装.NET 3.5 组件时,你要多注意一些细节。

当使用服务器管理器来安装.NET 3.5 时你可能会遇到下面的提示信息,指出源文件无法找到:

在Windows Server 2012 中安装 .NET 3.5 Framework_服务器

即使使用PowerShell来安装,你也可能看到类似的提示信息"The source files could not be downloaded"源文件无法下载,还报出一个0x800f0906的错误。在我这个例子中,服务器没有链接到Internet,无法访问Windows Update 服务器。

在Windows Server 2012 中安装 .NET 3.5 Framework_ide_02

回到"添加角色和功能"向导,我再仔细看一下,你会发现这样一条警告信息,在窗口底部还给出了一个链接"Specify an alternate source path",指定一个可备选源路径。

在Windows Server 2012 中安装 .NET 3.5 Framework_服务器_03

其他的功能在添加时并不需要我们提供源文件,为什么我们安装.NET 3.5时却需要呢?如果你安装的是Full GUI版本,你在PowerShell中运行get-windowsfeature | ? installstate –eq "removed" , 你可看到那些组件的安装状态被设为了"removed"。"Removed"指出了哪些组件文件在本地服务器是没有的。下面是Windows Server 2012(无论哪个版本)的默认设置。

在Windows Server 2012 中安装 .NET 3.5 Framework_服务器_04

对于那些没有WSUS的服务器,或者没有连接到Windows Update的服务器所需要的组件也就无法检索到,我们就需要一个Windows Server 的安装介质(可以是光盘或者镜像),从中到side-by-side store (也就是sxs),作为备选源路径,来完成功能的安装。

解决方法

我们可以从以下的安装方式中选择一种。

第一种方法


  1. 使用"添加角色和功能向导",点击窗口底部的链接,指定一个备选源路径。例如,D:是我的Windows Server DVD光盘。可使用如下路径:
    D:\Sources\sxs

在Windows Server 2012 中安装 .NET 3.5 Framework_ide_05

第二种方法


  1. 使用 PowerShell, 指定源文件路径然后进行安装:
    Install-WindowsFeature NET-Framework-Core –Source D:\Sources\sxs
  2. 使用命令提示符中的DISM命令,指定源文件路径然后进行安装:
    DISM /Online /Enable-Feature /FeatureName:NetFx3 /Source:d:\sources\sxs
  3. 使用包含sxs文件夹的文件共享,指定unc共享路径:
    Install-WindowsFeature NET-Framework-Core –Source \\ServerName\ShareName\sxs