Windows Server 2008 R2 + IIS 环境部署Asp.Net Core App
环境:Windows Server 2012,IIS 8,Asp.Net Core 1.1. 不少人第一次在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部署需要操作系统满足:
4.? 配置IISWindows Server上通过“添加角色和功能”,桌面Windows上通过“启用和关闭Windows功能”来安装和配置IIS。确保勾选Web服务和“IIS 管理控制台”: 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=".logsstdout" /> 3) ?在IIS管理器中添加网站。步骤与一般网站配置一致: 4) 配置应用程序池。在左侧导航栏选择“应用程序池”,选择指定程序池,右键菜单,选择“基本设置”,将.Net CLR版本设置为“无托管代码”。 7.? 测试Asp.Net Core App本例使用一个测试公网域名www.test.com,显然我们没有权限更改此域名在公网的解析记录,但我们可以更改此域名在本地的指向用于测试。使用记事本打开C:WindowsSystem32Driversetchosts文件,添加一条记录 “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?? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- Windows的System.Control是什么颜色的? (Visual
- 如何在Windows上设置手动添加路由的度量标准?
- .net – 有没有办法在Windows控制台中编写希伯来
- Windows server2012时间同步NTP配置
- 我想在Windows功能中启用Hyper-V,但没有Hyper-V选
- 带有双引号的字符串回显使用Windows批处理输出文
- windows-server-2008-r2 – 计划任务和环境变量
- windows-server-2008-r2 – 为什么Window的SSL C
- 使用OWASP for Windows安装ModSecurity
- 将脚本的工作文件夹添加到Windows上的Python导入