DotNetCore 部署到IIS 上
将 DotNetCore MVC 项目成功部署到 IIS 上,记录下配置要点:
1.在 ASP.NET Core 应用中使用 Kestrel
Microsoft.AspNetCore.App 元包中包括 Microsoft.AspNetCore.Server.Kestrel 包(ASP.NET Core 2.1 或更高版本)。The Microsoft.AspNetCore.Server.Kestrel package is included in the Microsoft.AspNetCore.App metapackage (ASP.NET Core 2.1 or later).
默认情况下,ASP.NET Core 项目模板使用 Kestrel。ASP.NET Core project templates use Kestrel by default. 在 Program.cs 中,模板代码调用 CreateDefaultBuilder,后者在后台调用 UseKestrel。
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
} public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
若要在调用 CreateDefaultBuilder 后提供其他配置,请调用 UseKestrel:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
// Set properties and call methods on options
});
想知道详细的 options 配置的请点这里
在 ConfigureServices(IServiceCollection services)中加入 IIS 服务代码:
public void ConfigureServices(IServiceCollection services)
{
// ...
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); services.Configure<IISOptions>(options =>
{
options.ForwardClientCertificate = false;
});
}
2、发布网站,我用的文件方式:


发布时注意勾选上“在发布前删除所有现有文件”。
3、IIS安装服务器上安装DotNetCore.X.X.X-WindowsHosting安装成功后重启IIS服务器。
根据版本选择下载 下载地址:https://www.microsoft.com/net/download/windows
4、部署之前要确保你的IIS上已经安装了AspNetCoreModule托管模块

5.设置应用程序池的.NET CLR版本为“无托管代码”
因为,IIS是作为一个反向代理的角色,并不需要它来托管代码

6、经测试,DotNetCore 项目,可以部署为网站下的一个“应用程序”
7、总结
.Net Core 和 传统的.Net 程序IIS部署主要注意以下几点:
- 网站程序的 IIS 适配修改。
- 安装DotNetCore.X.X.X-WindowsHosting和.Net Core SDK
- 应用池配置为无托管代码(网上解释:ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。而配置文件和过程都会由些许调整,中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以这时候我们无需设置应用程序池来托管我们的代码,它只负责转发请求而已)
- 如果需要读写根目录权限,要更改应用池 ApplicationPoolIdentity
- 网站报错,通过修改web.config 启用错误日志查看详细错误信息
DotNetCore 部署到IIS 上的更多相关文章
- WCF Service部署在IIS上
环境vs2010,WCF应用程序.如何将WCF部署在IIS上. 第一步:右键点击项目,选择生成部署包. 第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署包所在的地方.在这个p ...
- WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法
本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内 ...
- MVC 4.0项目部署在IIS上无法浏览的解决方案
本文属于原创,转载请标明出处! MVC 4.0发布后部署到IIS上可能出现无法浏览的问题,浏览器报403的错误. 解决方法是:只需在web.config配置文件里的<system.webServ ...
- WCF部署在IIS上
WCF部署在IIS上 环境vs2010,WCF应用程序.如何将WCF部署在IIS上. 第一步:右键点击项目,选择生成部署包. 第二步:在你项目所在的文件目录下找到Package文件夹,这就是我们的部署 ...
- 运行Vue在ASP.NET Core应用程序并部署在IIS上
前言 项目一直用的ASP.NET Core,但是呢我对ASP.NET Core一些原理也还未开始研究,仅限于会用,不过园子中已有大量文章存在,借着有点空余时间,我们来讲讲如何利用ASP.NET Cor ...
- 记:ASP.NET Core开发时部署到IIS上出现HTTP Error 502.5 - Process Failure的解决方案
HTTP Error 502.5 - Process Failure Common causes of this issue: The application process failed to st ...
- 问题:部署到iis上后Chart图片不显示;结果:使用webchart过程中遇到的一些问题
使用webchart过程中遇到的一些问题 2013年04月30日 ⁄ 综合 ⁄ 共 4874字 ⁄ 字号 小 中 大 ⁄ 评论关闭 安装条件:1.操作系统如果是2003的,那么需要到sp2补丁2. ...
- 将asp.net core2.0项目部署在IIS上运行
原文:将asp.net core2.0项目部署在IIS上运行 前言: 与ASP.NET时代不同,ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是独立运行的.它独立运行在控 ...
- c# 调用EXCEL在VS上能正常运行,部署在IIS上不能实现,在VS中运行页面和发布之后在IIS中运行的区别
发现一篇文章,很好,解决了这个问题:感谢原博主!特此做个笔记. 地址:http://www.cnblogs.com/zhongxinWang/p/3275154.html 发布在IIS上的Web程序, ...
随机推荐
- jmeter实例介绍
JMeter基础之一 一个简单的性能测试 测试需求: 1)测试目标网站是fnng.cnblogs.com 和 tt-topia.rhcloud.com 2)测试目的是该网站在负载达到20 QPS 时 ...
- 6、echarts使用的坑
实例化id值要用唯一的,一个项目中不能用同一个id, 不然后面的样式覆盖前面的,且后面样式不显示.
- 【管理篇】用户故事STORY
项目管理中,常常听说story,用户故事 “一开始就做对系统”纯属神话,反之,我们应该去实现今天的用户故事,然后重构,明天再拓展系统.实现新的用户故事.这就是迭代和增量敏捷的精粹所在.
- PowerShell导出场中的WSP包到本地
Add-PSSnapin Microsoft.SharePoint.PowerShell –erroraction SilentlyContinue## setup our output direct ...
- SyntaxError: invalid character in identifier(Python)
在写博客时直接将博客上的代码复制运行后发现错误SyntaxError: invalid character in identifier,我以为是l(小L)写成了1,改了还是不行. 上网查了下,发现原来 ...
- thinkPHP3.2使用__ROOT__显示为空,为什么
在模板展示上传文件的时候用了__ROOT__,但是显示为空. 在网上找解决办法,改为__ROOT__/,然后就可以了
- 我了解到的新知识之----如何使用Python获取最新外汇汇率信息
这个需求本来是来源于公司同事工作中需求,用户需要使用数据分析工具Power BI抓取多页的中国银行官网上当天的外汇数据.但是没能研究出来. 我就开始在网络上找关于使用python来抓取当天汇率的案例分 ...
- 聊天机器人開發好消息!!DIALOGFLOW與微信的天作之合!!
虽然DIALOGFLOW暂未能够与微信(WECHAT)或企业微信(ENTERPRISE WECHAT)进行任何技制上的连接INTERGRATION),确实限制了我们这些聊天机器人开发者的创作空间,因为 ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- IP的面向无连接状态
ip是面向于无连接的状态,在发包前,不需要建立与对端目标地址之间的连接. ip采用面向无连接的原因? 面向连接比无连接复杂,此外每次通信前都要事先建立连接,会降低处理速度.需要有连接时可以委托上一层提 ...