今天向大家详细介绍一下,如何将一个.net core项目部署到远程云服务器,我的服务器镜像为
window server 2019.
1.安装IIS
首先在服务器上安装IIS(我的是最新的iis10),我已经安装完毕,这个安装 *** 作比较简单,自行谷歌。
安装完成后会看到下面的界面:
2.安装web deploy程序
该程序的功能:
它可以让我们从Visual Studio中一键部署网站到IIS服务器,并且智能判断哪些文件是新增的,哪些是需要修改或删除的
有关介绍,请看这篇文章:Web Deploy这个IIS的迁移工具【图文】_一行学习_51CTO博客
Web Deploy 服务器安装设置与使用_Codec007的专栏-CSDN博客
Download Address:Download Web Deploy v3.6 from Official Microsoft Download Center
根据你的 *** 作系统,选择对应的版本安装即可。
安装完成后,在服务中会添加这个服务:
3.服务器端配置好IIS10,允许使用VS2019通过Web部署方式发布程序
双击管理服务:先把服务停止,才能编辑.指定IP地址(内网IP)
默认情况下,Default web site所使用的端口为80,改掉给我们的新建网站使用。
新建一个web 站点:
这里主机名就是域名,需要进行注册申请。
简单做个介绍:
有时候我们会发现当我们访问一个IIS网站时,使用网址可以正常访问,但是使用IP却不行,这是什么原因呢?
原来IIS可以使用一个IP地址和端口绑定多个网站,这些网站的IP地址与端口都一样,因此在客户端或浏览器中使用IP访问IIS会失败,因为单单根据IP地址IIS无法确定你要访问的具体是哪一个网站,此时必须使用主机名也就是网址(例如:www.blog.sina.com.cn)才能访问到相应的网站。其工作原理如下文所述。
客户端或浏览器使用网址发起请求后,会首先到DNS中查找网址对应的IP地址,然后构建HTTP请求,并把网址赋值给HTTP Header的Host属性,最后把HTTP请求发送给目标IP。
IIS收到HTTP请求后,首先根据IP地址,找打所有绑定到该IP和端口的站点,然后根据HTTP Header的Host属性从这些网站中查找对应的Host Header设置,找到后,把HTTP请求交给该站点处理。如果没找到相应的网站,则寻找这些站点中没有设置Host Header的站点,把HTTP请求交给它处理。最后IIS把处理完的信息再发送给客户端。
总结来说:我们申请到的域名,绑定到了当前服务器下的此站点(指定IP下的指定站点)
有关客户端请求,服务器的响应的具体工作原理,可以看看计算机网络相关知识:
这部分会涉及到DNS域名解析服务器.
添加网站部署所使用的User:计算机管理--->本地用户和组
将此User添加到Remote Desktop User组中:
将之前添加的webdeploy_user这个用户,授权可以管理 *** 作新建的网站.
为了有足够的 *** 作权限,我直接放开此用户可以 *** 作管理此网站对应的目录文件:
4.安装ASP.NET CORE run time以及sdk:
我的项目为3.1版本,选择你项目对应的版本就ok了,通常来说高版本兼容低版本吧.
Download .NET Core 3.1 (Linux, macOS, and Windows)
安装完成之后查看IIS:
应用程序池,改为无托管代码:
这样的话,才能保证asp.net core项目的成功运行。
有关IIS的详细管理细节,会在以后做一个专题的介绍。
5.使用VS2019部署发布web api项目:
项目右键--->发布:
验证连接:出现下面的错误
实际上我已经成功安装,我第一感觉就是防火墙或者某个指定端口没开放,果不其然.
Soluton Address:Web Deploy部署错误:未能连接到远程计算机,请确保在远程计算机上安装了 Web Deploy 并启动了所需的进程("Web Management Service") - 范斯 - 博客园
管理服务默认是用8172端口,要保证端口能够正常通过防火墙
腾讯云防火墙管理界面:开放此端口:
然后再尝试:检验通过,保存,发布即可
然后去服务器查看:
由于只有一个网站,并且开放了80端口,直接通过ip地址/swagger,就可以直接访问到web api站点了。
如果是实际项目中,肯定是将每个站点绑定到指定的域名上,通过域名去访问。
至此,整个iis站点的搭建和web 项目的完整部署就介绍到这了,
这种发布实际还是比较简单,但如果遇到多项目多分支项目的话,还是比较不太试用。现在比较推荐使用Jenkins做自动化部署项目,后期会把整个搭建过程和部署 *** 作分享出来
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)