但愿给你3-5分钟的碎片化学习,多是坐地铁、等公交,聚沙成塔,水滴石穿,谢谢关注。web
不少人第一次在IIS中部署Asp.Net Core App的人都会遇到问题,会发现原来的部署方式没法运行Asp.Net Core App程序。其实大的方式没有多少变化,Asp.Net Core App为了作到跨平台,自带了一个轻量级的Web Server-Kestrel,那么要在IIS中部署Asp.Net Core App,就必须有一种新的机制来协调IIS与Kestrel Server之间的数据传递后端
与传统的Asp.Net程序不一样,Asp.Net Core App使用了Kestrel Server。Kestrel[kestrəl]是一个跨平台的Web Server,与IIS同样负责请求的监听、接收和响应,但没有IIS丰富的管理功能,仍须要由IIS来处理一些前置工做。(固然你也可使用Apache来作前置处理)服务器
IIS负责把外部请求转发给后端的Asp.net Core App,充当“反向代理”角色。app
Asp.Net Core App部署须要操做系统知足:asp.net
安装.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 Redistributabl.net
下载地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=53840命令行
下载最新版本.NET Core Windows Server Hosting
下载地址:https://www.microsoft.com/net/download#/runtime
安装完后,请确保IIS的模块里的配置是对的,请见下图:
模块包含有:asp.net core module
有两种方法:能够经过dotnet publish 命令发布,也能够经过Visual Studio发布。
命令行发布
dotnet publish
默认会发布到bin/Debug目录下,能够指定一个发布目录
dotnet publish -o C:UsersjackyfeiDownloads
或者
dotnet publish --framework netcoreapp1.1 --output "E:Publish" --configuration Release
VS界面发布
接下来的步骤与部署传统网站基本一致,但也有稍许不一样。
1)在网站根目录建立一个logs文件夹。若是你开启了某些日志服务,日志文件将记录在这里。固然也能够不记录日志,但初次部署对排错有帮助,建议建立。
web.config 中开启 stdoutLogEnabled="true"
<aspNetCore processPath="dotnet" arguments=".Web.dll" stdoutLogEnabled="true" stdoutLogFile=".logsstdout" />
2) 在IIS管理器中添加网站。步骤与通常网站配置一致:
3) 配置应用程序池。在左侧导航栏选择“应用程序池”,选择指定程序池,右键菜单,选择“基本设置”,将.Net CLR版本设置为“无托管代码”。
我是IT人张飞洪,入行10年有余,人不堪其忧,吾不改其乐,谢谢关注个人头条号。