.NetCore程序发布到IIS上面

一、概述

在传统的.NET Framework中,ASP.NET程序发布到IIS上面,是由IIS的工作进程(w3wp.exe)托管的,在任务管理器中可以找到该进程。在ASP.NET Core程序中不再是由IIS工作进程托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,然后将接收到的请求推送至中间件管道中,处理完请求后在将HTTP响应数据重新回写到IIS中,最终通过IIS转达到不同的客户端。在这过程中,最重要的角色便是AspNetCoreModule(.net core 2.0以上版本中是AspNetCoreModuleV2),它是IIS中的一个模块,HTTP请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中。因为IIS只是作为反向代理负责转发请求,不负责监听HTTP请求端口,所以不需要使用应用程序池来托管我们的代码。

1、查看是否安装AspNetCoreModule

在IIS中选中主页,然后选择功能视图里面的模块,如下图所示:

双击进入模块,查看是否安装,如下图所示:

注意:

如果没有AspNetCoreModule,需要去微软网站下载.net core Runtime,网址:

https://dotnet.microsoft.com/download

下载.NET Core runtime

二、发布项目

这里选择发布到文件系统。

1、在要发布的项目上面右键选择发布,如下图所示:

2、选择要发布到的文件夹

3、高级配置

点击高级,可以打开配置界面,在这里可以配置生成模式(Debug或者Release)、目标框架等,如下图所示:

4、发布

点击高级里面的保存,然后点击发布按钮,开始发布程序,出现如下图所示的界面表示发布完成。

三、在IIS中添加网站

1、添加网站

在IIS中添加一个网站,设置网站名称,并将网站的物理路径指向刚才程序发布的文件夹,如下图所示:

2、设置应用程序池

在前面的概述中已经说过:IIS在这里只是作为反向代理,不负责托管代码,所以要把应用程序池的.NET CLR版本设置成“无托管代码”,如下图所示:

3、浏览网站

在.NET Framework编写的ASP.NET项目中,选中左侧的网站,然后点击右侧的浏览,即可浏览网站,在.NET Core项目中需要手动输入完整的网址才可以浏览,不能直接浏览,如果直接浏览,会提示找不到网页,如下图所示:

重新访问:http://localhost:10012/api/values

到此为止,如何将一个.NET Core程序发布到IIS上面已经讲解完成。

转载于:https://www.cnblogs.com/dotnet261010/p/10174904.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值