.NET Framework的部分功能在2008 R2 Server Core得到支持,包括:.NET 2/3/3.5的子集和ASP.NET。另外,PowerShell也在Server Core上可用。IIS7在Server Core上缺少的功能仅仅是本地的管理GUI,可以通过远程进行管理 。
安装好的Server Core支持以下角色:
- .NET Framework 2.0, 3.0, 和3.5 子集, 包括WCF, WF和LINQ
- PowerShell 2.0
- 通过WoW64 支持32位应用程序
- 支持ASP.NET的IIS 7.5
- 文件服务器资源管理器(FSRM)
- 证书服务
上述所支持的角色功能在安装好的Server Core服务器上已经就绪,可以通过以下命令启用相应的组件:
dism /online /enable-feature /featurename:<component>
下面列出的上述组件的名称,注意名称是区分大小写的,
- .NET Framework 2.0, 3.0, 和3.5 子集: NetFx3-ServerCore (要求首先安装NetFx2-ServerCore)
- Windows PowerShell: MicrosoftWindowsPowerShell
- 文件服务器资源管理器(FSRM): FSRM-Infrastructure-Core
- 证书服务: CertificateServices
- 支持ASP.NET的IIS 7.5:
- IIS-FTPExtensibility
- IIS-ASPNET
- IIS-NetFxExtensibility
- WCF-HTTP-Activation
- IIS-WebDAV
- IIS-ManagementService
- IIS-PowerShellProvider
- 通过WoW64 支持32位应用程序: ServerCore-WOW64
- Additional WoW64 support:
- FailoverCluster-Core-WOW64
- NetFx2-ServerCore-WOW64
- MicrosoftWindowsPowerShell-WOW64 (要求首先安装 NetFx2-ServerCore-WOW64)
- NetFx3-ServerCore-WOW64
- Printing-ServerCore-Role-WOW64
- ServerCore-EA-IME-WOW64
- SUACore-WOW64
应用通过下面这个命令查看已经安装的组件:
oclist | more
应用通过下面的命令查看已经启用的组件:
dism /online /get-features /format:table | find /I Enabled
应用下述命令明确ASP.NET功能的配置状态
dism /online /get-featureinfo /featurename:IIS-ASPNET
介绍完相关的命令了,下面我们来完成在Windows Server 2008 R2上启用ASP.NET的相关配置。Windows Server 2008 R2的ServerCore包含了.NETFramework2.0/3.0/3.5的子集,这使得ServerCore几乎可以支持ASP.NET的所有特性,但是还有一些限制需要注意:
- 没有内置的管理控制台,配置和管理ServerCore中的APS.NET站点需要在安装了IIS管理控制台的客户端计算机上远程进行管理,或者通过ServerCore中的APPCMD工具,使用命令行控制台对IIS站点和应用进行更加全面的管理。
- 没有System WebMail命名空间,因为ServerCore中不含CDOSYS组件,因而也不支持SystemWebMail命名空间,使用SystemNetMail可以实现相同的功能。
- Windows Serve 2008 R2的Server Core不支持Web应用工具(WAT)。
在安装Web Server 角色,IIS和相关的依赖之前,我们必须确保.NET Framework是已经启用的,通过dism的以下两条命令进行配置.NET Framework 2.0, 3.0, 和3.5 子集:
dism /online /enable-feature /featurename:NetFx2-ServerCore
dism /online /enable-feature /featurename:NetFx3-ServerCore
安装IIS Web Server:
dism /online /enable-feature /featurename:IIS-WebServerRole
安装IIS的ASP.NET支持之前还必须启IIS-ISAPIFilter、IIS-ISAPIExtensions、IIS-NetFxExtensibility:
dism /online /enable-feature /featurename:IIS-ISAPIFilter
dism /online /enable-feature /featurename:IIS-ISAPIExtensions
dism /online /enable-feature /featurename:IIS-NetFxExtensibility
现在可以执行下面的命令安装ASP.NET:
dism /online /enable-feature /featurename:IIS-ASPNET
现在Server Core服务器已经可以支持ASP.NET应用,但是,现在ServerCore中并没有Windows 2008那样具有GUI的IIS管理控制台,这时候如果用户需要创建Web站点和Web应用,有两种方法可以实现:第一种是采用appcmd.exe命令行工具,在Windows系统文件夹中可以找到;或者开启IIS管理服务,通过IIS远程客户端的IIS管理控制台来创建。
执行以下命令安装IIS远程管理服务:
dism /online /enable-feature /featurename:IIS-ManagementService
需要安装WAS-WindowsActivationService和WAS-ConfigurationAPI:
dism /online /enable-feature /featurename:WAS-WindowsActivationService
dism /online /enable-feature /featurename:WAS-ConfigurationAPI
安装成功后,还需要更改一些注册表键值来激活管理服务:
Reg Add HKLM\Software\Microsoft\WebManagement\Server /V EnableRemoteManagement /T REG_DWORD /D 1
IIS远程管理服务已经安装好,但是需要注意的是默认情况下服务是处于停止状态的,如果需要IIS远程管理服务进入开启状态,需要通过netstart命令启用,这点非常重要:
net start wmsvc
现在我们可以通过远程计算机管理Server Core上的IIS服务器,通过带GUI的Windows Server 2008或者Windows 7的IIS控制台连接到Server Core上:
输入Server Core的服务器名称或者IP:
随后要求输入连接到服务器的凭证:
然后需要输入一个标识名称,建议规范命名,一看就知道是那个服务器的IIS:
在IIS上就可以远程管理你的Server Core的IIS服务了。
上述安装过程中,服务器只支持64位的应用程序,我们还存在大量的32位应用程序,在Server Core上启用32为应用程序的支持也很简单,32为应用程序的支持是通过WOW64,可以通过以下命令进行安装:
dism /online /enable-feature /featurename:ServerCore-WOW64
如果还需要使用32位的.NET程序集,执行以下命令进行安装:
dism /online /enable-feature /featurename:NetFx2-ServerCore
dism /online /enable-feature /featurename:NetFx2-ServerCore-WOW64
最后还需要IIS支持32位的应用程序的,需要在IIS的应用程序池上启用32为应用程序的支持。
如果你的应用程序里面还使用到了VC++写的程序集,还需要安装Microsoft Visual C++ Redistributable Package,具体可以参考Visual Studio 64位应用程序编译。
参考资料: