Windows 2008 R2 Server Core .NET环境配置
.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 HKLMSoftwareMicrosoftWebManagementServer /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位应用程序编译。
参考资料:
- Visual Studio 64位应用程序编译
- Implement Minimalist Solutions using Windows Server 2008 R2 Server Core
- How to Get Started with C++ and .NET Applications on Server Core
- How to Get Started with ASP.NET Applications on Server Core
- 用Python爬取网易云音乐的用户评论文本
- grunt任务之seajs模块打包
- 【Java提高十八】Map接口集合详解
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(五)讲一下maven
- Thinking in React
- 【Java提高十六】集合List接口详解
- JS的内建函数reduce
- Error: Cannot find module 'gulp-clone'问题的解决
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(四)代码简化
- Angular源码分析之$compile
- TensorFlow实例: 手写汉字识别
- iOS引入JavaScriptCore引擎框架(一)
- Spring+SpringMVC+MyBatis+easyUI整合基础篇(三)搭建步骤
- iOS引入JavaScriptCore引擎框架(二)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- java之生产者和消费者问题
- springboot开发之thymeleaf模板引擎
- Nginx | Nginx增加模块
- springboot之整合druid并配置数据源监控
- c++之程序流程控制
- linux使用 source etc/profile
- c++之数组
- c++之指针
- c++之函数
- kafka的生产者分区机制原理(二)
- (17)Bash别名与快捷键
- (16)Bash历史命令与补全
- 【python-leetcode325-滑动窗口法】最大子数组之和为k
- 爬取51job出现can only concatenate str (not “NoneType“) to str
- springboot之基于注解整合mybatis