出门莫恨无人随,书中车马多如簇。这篇文章主要讲述Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App相关的知识,希望能为你提供帮助。
Windows + IIS 环境部署Asp.Net Core App
环境:Windows Server 2012, IIS 8, Asp.Net Core 1.1.
【Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App】不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式无法运行Asp.Net Core App程序。过去无论是原始的Asp程序还是后来的Asp.Net程序,在IIS中的部署方式都没太大变化,仅需指向程序目录,然后设定虚拟目录,最后做一些参数配置。Asp.Net Core App为了做到跨平台,自带了一个轻量级的Web Server - Kestrel,那么要在IIS中部署Asp.Net Core App,就必须有一种新的机制来协调IIS与Kestrel Server之间的数据传递。
1.
Asp.Net Core的部署模式与传统的Asp.Net程序不同,Asp.Net Core App使用了Kestrel Server。Kestrel是一个跨平台的Web Server,与IIS一样负责请求的监听、接收和响应,但没有IIS丰富的管理功能,仍需要由IIS来处理一些前置工作。(当然你也可以使用Apache来做前置处理)
文章图片
IIS负责把外部请求转发给后端的Asp.net Core App,充当“反向代理(reverse-proxy)”角色。
2. 理解反向代理“反向”是指入站方向,“代理”可以理解为某种服务,这里是转发HTTP请求的服务。“反向代理”就是入站方向转发HTTP请求的服务。
和路由器原理一样,路由器除了让局域网能够访问internet,也可以通过设置NAT或端口映射,从internet访问内部的某台服务器,相当于把入站请求转发给指定电脑上,这与IIS的反向代理角色类似。代理服务器与路由器都是起到数据转发的作用,只不过代理服务器转发的是某类应用的数据,路由器转发的是数据包。
3. 部署环境Asp.Net Core App部署需要操作系统满足:
- Windows 7 或更新版本
- Windows Server 2008 R2 或更新版本
文章图片
Windows Server IIS 安装配置
文章图片
桌面Windows IIS 安装配置
5. 安装.NET Core Windows Server Hosting程序集安装.NET Core Windows Server Hosting程序集,让IIS具备反向代理功能。该程序集包含了.Net Core运行时(Runtime),.Net Core 类库(Library)和 Asp.Net Core Module。其中Asp.Net Core Module负责反向代理工作。
特别注意,按微软官方说法,如果是脱机安装,则需先手动安装Microsoft Visual C++ 2015 Redistributable。但实践证明即使在线安装很多时候也不会自动安装 Microsoft Visual C++ 2015 Redistributable,因此强烈建议手动安装Microsoft Visual C++ 2015 Redistributabl。
另外,目前.NET Core版本升级很快,请下载最新版本的.NET Core Windows Server Hosting,确保服务器上的.Net Core版本不低于部署的Asp.Net Core App版本。
下载 Microsoft Visual C++ 2015 Redistributable
下载最新版本.NET Core Windows Server Hosting
安装完成重启系统或重启IIS服务即可。
6. IIS中配置Asp.Net Core App接下来的步骤与部署传统网站基本一致,但也有稍许不同,请留意。
1) 服务器中创建目录存放发布以后的App程序文件,确保App的web.config文件在网站根目录下。
2) 在网站根目录创建一个logs文件夹。如果你开启了某些日志服务,日志文件将记录在这里。当然也可以不记录日志,但初次部署对排错有帮助,建议创建。
文章图片
web.config 中开启 stdoutLogEnabled="true"
< aspNetCore processPath="dotnet" arguments=".\\Web.dll" stdoutLogEnabled="true" stdoutLogFile=".\\logs\\stdout" />
3) 在IIS管理器中添加网站。步骤与一般网站配置一致:
文章图片
文章图片
4) 配置应用程序池。在左侧导航栏选择“应用程序池”,选择指定程序池,右键菜单,选择“基本设置”,将.Net CLR版本设置为“无托管代码”。
文章图片
7. 测试Asp.Net Core App本例使用一个测试公网域名www.test.com,显然我们没有权限更改此域名在公网的解析记录,但我们可以更改此域名在本地的指向用于测试。使用记事本打开C:\\Windows\\System32\\Drivers\\etc\\hosts文件,添加一条记录 “127.0.0.1 www.test.com”。之后我们在本地访问域名www.test.com时IP地址将解析为 127.0.0.1。使用浏览器打开www.test.com,我们会看到Asp.Net Core App已正常运行:
文章图片
本文来自:https://www.cnblogs.com/lookerblue/p/7101641.html
推荐阅读
- 用Qt制作的Android独立游戏《吃药了》公布
- APP元素的四大类
- ServiceStack NetCoreAppSettings 配置文件读取和设置
- Android-1
- Android猜数字大小游戏
- 专家最喜欢的数据科学技术介绍
- R中的Web爬虫(rvest教程)
- 使用Python部署Facebook Messenger Bot
- 带有ElementTree的Python XML(新手指南)