点击上方蓝字关注“汪宇杰博客”

iis管理器在哪里打开_win7 iis在哪里打开_win7 iis 打开空白

导语

微软智慧云 Azure 上虽然早就有 App Service 这种完全托管的 PaaS 服务可以让我们分分钟建网站。但是不自己配一下环境,就不能体现技术含量,容易被说微软的人都只会点鼠标。年轻的时候不敲命令,什么时候可以?今天就教大家如何在 Azure 上用 Windows Server 2019 (Server Core) VM 的方式自己配环境部署 ASP.NET Core 网站。

win7 iis 打开空白_win7 iis在哪里打开_iis管理器在哪里打开

什么是 Windows Server Core

在微软开天辟地之时,先知比尔盖茨认为微软的使命是让复杂的计算机变得易用,因此 Windows 用图形化界面实现了“让每张桌子、每个家庭都拥有一台电脑”的使命。而图形界面也包含了 Windows 的服务器版本,绝大多数服务器组件都可以点鼠标分分钟装完。

但微软不明白,程序员需要的是通过命令行装逼,而不是早点下班。于是 Linux 靠命令行、模块化、轻量级统治了服务器的半壁江山,让程序员和运维充分装到了逼。而且 Windows 服务器还有个问题,就是由于有完整的桌面 GUI,因此服务器硬件的资源并没有最大化利用来处理业务。微软一看,这样不行啊iis管理器在哪里打开,于是在 Windows Server 2008 的时候推出了 Core 版本。

它是在部署 Windows Server Standard 或 Datacenter 版本时可用的最小安装选项。Server Core 包括大多数但并非全部服务器角色。相比完整桌面,Core 版本剔除了绝大部分GUI,并且你只安装需要的服务器角色,这样不仅降低了硬件开销,也降低了被攻击的风险。管理 Server Core 服务器基本通过命令行完成,易于装逼。

如果想要完全没有 GUI 的 Windows 服务器,可以了解一下 nano server,但这不是本文的议题,因此不暂不讨论。

使用传送门了解 Windows Server Core:

win7 iis在哪里打开_win7 iis 打开空白_iis管理器在哪里打开

在 Azure 创建 Server Core 虚拟机

和创建其他虚拟机一样,在 Azure Portal 中创建 Server Core 虚拟机。镜像不在默认下拉列表里,需要自己从 “Browse all public and private images” 里搜出来。

镜像名称:

Windows Server 2019 Datacenter Server Core

iis管理器在哪里打开_win7 iis在哪里打开_win7 iis 打开空白

由于我们要运行的是 ASP.NET Core 网站,并需要使用RDP登录服务器进行配置,所以建议开放 80,443,3389端口。

win7 iis在哪里打开_iis管理器在哪里打开_win7 iis 打开空白

因为测试用途,我选择不配置防火墙,暴露所有端口到公网(也会忽略上一步的端口设置)。在真实环境中,请不要这样操作。

iis管理器在哪里打开_win7 iis 打开空白_win7 iis在哪里打开

等服务器部署完成后,点击 DNS name 中的 “Configure” 配置一个域名。这是因为Azure上的VM默认IP地址是动态的,所以最好通过域名来访问,保证随时能找到你的服务器。

iis管理器在哪里打开_win7 iis在哪里打开_win7 iis 打开空白

分配一个域名前缀

win7 iis 打开空白_win7 iis在哪里打开_iis管理器在哪里打开

配置完成后,刷新 VM 主页,可以查看和复制用于访问虚拟机的域名。

win7 iis 打开空白_win7 iis在哪里打开_iis管理器在哪里打开

登录 Server Core 服务器

点击 “Connect”

iis管理器在哪里打开_win7 iis 打开空白_win7 iis在哪里打开

选择 Download RDP File

win7 iis在哪里打开_win7 iis 打开空白_iis管理器在哪里打开

使用创建服务器时设置的账号密码登录 Server Core VM

win7 iis在哪里打开_iis管理器在哪里打开_win7 iis 打开空白

此时大家会发现,Server Core 并不是完全没有GUI,而是最小化了 GUI 的存在。cmd 窗口依然是Windows渲染的。之后我们要用到的注册表编辑器也是 GUI 方式操作。

安装和配置 IIS

win7 iis 打开空白_iis管理器在哪里打开_win7 iis在哪里打开

首先,借用我以前写的自动装机脚本()里的一部分来安装IIS(除ASP.NET,因为我们用的是.NET Core,和经典ASP.NET没关系)

使用powershell命令,在cmd下启动powershell

powershell

然后依次执行

Enable-WindowsOptionalFeature-Online -FeatureName IIS-DefaultDocument -All

Enable-WindowsOptionalFeature-Online -FeatureName IIS-HttpCompressionDynamic -All

Enable-WindowsOptionalFeature-Online -FeatureName IIS-HttpCompressionStatic -All

Enable-WindowsOptionalFeature-Online -FeatureName IIS-WebSockets -All

Enable-WindowsOptionalFeature-Online -FeatureName IIS-ApplicationInit -All

Enable-WindowsOptionalFeature-Online -FeatureName IIS-ServerSideIncludes

Enable-WindowsOptionalFeature-Online -FeatureName IIS-BasicAuthentication

Enable-WindowsOptionalFeature-Online -FeatureName IIS-WindowsAuthentication

这一步应该也能通过 Install-WindowsFeature Web-Server 命令完成,但我没试过,大家可以自己实践

win7 iis 打开空白_iis管理器在哪里打开_win7 iis在哪里打开

然后安装管理服务

Install-WindowsFeatureWeb-Mgmt-Service

win7 iis 打开空白_win7 iis在哪里打开_iis管理器在哪里打开

运行regedit启动注册表编辑器,改一个注册表值

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWebManagementServer

将EnableRemoteManagement 改为 1

iis管理器在哪里打开_win7 iis在哪里打开_win7 iis 打开空白

执行 exit 退出 powershell 回到 cmd,我们要将 wmsvc 设置为开机自启动

scconfig wmsvc start=auto

win7 iis 打开空白_iis管理器在哪里打开_win7 iis在哪里打开

然后启动 wmsvc 服务

netstart wmsvc

并且要允许Windows防火墙(和Azure NSG无关)通过这个服务

netsh advfirewall firewall add rule name=”IIS Remote Management” dir=in action=allow service=WMSVC

安装 ASP.NET Core 服务器环境

尽管我们可以通过 powershell 去下载.NET Core运行时然后手工安装,但这样并不方便,逼格也不高。Windows上其实有个类似 Linux 里 apt 那样的命令行包管理工具,叫做chocolatey,我们可以通过它在命令行下全自动安装大量软件。

再次键入 powershell,然后执行以下命令安装 choco

Set-ExecutionPolicyBypass -Scope Process -Force; iex ((New-ObjectSystem.Net.WebClient).DownloadString(‘https://chocolatey.org/install.ps1’))

完成后,键入 choco 检查是否能识别

win7 iis在哪里打开_iis管理器在哪里打开_win7 iis 打开空白

执行以下命令,全自动安装 ASP.NET Core 服务器运行环境

chocoinstall dotnetcore-windowshosting -y

win7 iis 打开空白_win7 iis在哪里打开_iis管理器在哪里打开

它将安装 x86, x64 两个运行时,以及 IIS 的 ANCM 模块

win7 iis在哪里打开_iis管理器在哪里打开_win7 iis 打开空白

安装和配置 Web Deploy

使用 choco 安装 Web Deploy,该组件之后用于远程发布 ASP.NET Core 网站。

chocoinstall webdeploy -y

win7 iis 打开空白_iis管理器在哪里打开_win7 iis在哪里打开

完成后重启一下 w3svc 服务

net stop w3svc

net start w3svc

iis管理器在哪里打开_win7 iis 打开空白_win7 iis在哪里打开

IIS 远程管理

现在,我们能够在IIS管理器里远程连接到这台服务器进行网站发布。这可以在任何带有 IIS 7 以上管理器的机器上完成,比如我们自己的 Windows 10 客户端。

如果没有安装过 IIS 管理器,可以运行 optionalfeatures 并勾选 Internet Information Serviece / Web Management Service / IIS Management Console 安装。

iis管理器在哪里打开_win7 iis 打开空白_win7 iis在哪里打开

win7 iis在哪里打开_iis管理器在哪里打开_win7 iis 打开空白

然后要自己去下一个IISManager for Remote Administration 1.2,传送门:

安装完成后,启动 IIS 管理器,选择 File-> Connect to a Server

win7 iis 打开空白_iis管理器在哪里打开_win7 iis在哪里打开

输入我们的服务器地址,即 Azure 上配过的那个DNS名称

win7 iis 打开空白_iis管理器在哪里打开_win7 iis在哪里打开

忽略证书警告,点 Connect

win7 iis 打开空白_win7 iis在哪里打开_iis管理器在哪里打开

这时候可能会弹一堆关于 Web Deploy 的可选安装组件,全选并安装

win7 iis在哪里打开_iis管理器在哪里打开_win7 iis 打开空白

然后在IIS里就能用你熟悉的点鼠标方式,管理服务器上的网站了iis管理器在哪里打开,非常不996,一点也没有福报。

我们做的第一件事应该是检查 ASP.NET Core 的 ANCM 模块有没有安装成功。进入 Modules

win7 iis在哪里打开_iis管理器在哪里打开_win7 iis 打开空白

检查是否有 AspNetCoreModule 以及AspNetCoreModuleV2

iis管理器在哪里打开_win7 iis在哪里打开_win7 iis 打开空白

当然,你也可以在服务器上使用 dotnet –info 命令检查运行时版本。

因为要刷新环境变量最方便的办法是重启cmd,然而我们在服务器上退出cmd以后,因为没有完整桌面,不知道哪里去启动cmd,其实可以通过 CTRL SHIFT ESC 调出任务管理器,然后运行cmd命令,开一个新的cmd出来。

win7 iis在哪里打开_win7 iis 打开空白_iis管理器在哪里打开

然后就能愉快的运行 dotnet –info 了

win7 iis在哪里打开_win7 iis 打开空白_iis管理器在哪里打开

服务器玩够了,就回到我们老实的 Windows 10 客户端。在 IIS 里给默认网站开个https支持,因为 .NET Core 现在默认会启用https(尽管我们没有证书)

在 Bindings 里,添加https/443的支持,并勾选一个IIS自带的临时证书

win7 iis 打开空白_iis管理器在哪里打开_win7 iis在哪里打开

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889