.net core 部署 Web Deploy发布 及部署问题

  • 需要注意的点见:https://www.cnblogs.com/itsvse/p/13785107.html
  • 安装资源

一、IIS上部署

aspnetcore-runtime

dotnet-hosting

dotnet-sdk

安装好,重启。开发机又当服务器,需要装SDK,SDK安装时会自动安装运行时,需要安装如下:

安装vs的时候,只会安装 sdk from visual studio

注意iis要安装全:

 

 

IIS配置

第一步:发布的时候先要选择IIS

第二步:增加网站,且要修改下应用程序池。

 

  • 二、Web Deploy发布

  • 一、首先要确保服务器上的IIS和web deploy已经完全安装,这里建议安装web deploy时选择完全安装,否则可能会有401等错误。

  • 二、 打开之后按照图片中设置

  • 主要是启用远程连接,而且标识凭据中根据需求选择只用windows凭据还是同时使用IIS凭据。

  • 注意端口号必须添加到“入站规则”,对应防火烟端口打开,(自己服务器,就是服务器路由上设,如果云服务器,就要在云服务器上设(如华为云))
  • WMSVC服务在服务列表中是:web mangement service

    三、点击你的站点,在功能列表中选择IIS管理器权限,右边点击允许用户,选择windows类型的用户,添加你的账号

  • 四、右击站点,选择部署-启用web deploy发布

  •  到这里如果一切正常,按照发布流程已经可以发布了。如果有550错误,401授权错误等,继续往下看。

  • 401授权错误,可以按照如下步骤尝试:

  1. 验证错误,直接改用系统的用户。
  2. 在服务器本地用户中创建 WDeployAdmin 和 WDeployConfigWriter. 并设置密码(第四步还将用到)。二者都同时勾选“密码永不过期“ 。
  3.  添加WDeployAdmin 到Administrators组
  4.  打开C:\\Windows\system32\inetsrv\config—属性—安全,添加WDeployConfigWriter并赋予修改和写权限
  5. 打开IIS,选择”Management Service Delegation ( 管理服务委派)”将这里所有用户名为WDeploy* 的点击右侧的“编辑”—“设置”填写第一步添加的用户名和密码。
  6. 打开IIS对应站点,选择”iis管理权限” 允许用户 WDeployAdmin 和 WDeployConfigWriter
  •  您无权使用所提供的凭据查看此目录或页面。

       iis-对应站点:目录浏览-启动

  550错误,可尝试如下步骤:

    1. 找到站点根目录
    2. 属性-安全-给local service、IIS_IUSERS分配修改权限
  • IIS发布有时会报如下错:

可能是2019的bug,需要点一下验证“连接”

 

三、发布成功,服务器文件夹没文件:

查看发布配置是不是“站点名称”不对。

如果是第一次发布,一定是第一次发布才可以,不然里面的文件都没了,可以选择发布前删除原文件,好了以后再改回来。

HTTP Error 500.31 - ANCM Failed to Find Native Dependencies

也可能是数据库连接不对。

原因:被进程内托管了。因为asp.net代码发布之后默认是在IIS中托管,.netcore是无托管代码的,这个知识点要记住。

所以:删除webconfig中的配置,hostingModel="InProcess"即可;hostingModel="InProcess"代表进程内托管。

 

aspnetcore-runtime-5.0.12-win-x64

四、本地没问题,发布后swagger不能正常显示,也不报错。如下

 

原因:

1、可能是防火墙拦截了。如果用了华为云之类的,那需要云端把端口打开一下。

2、换chrom浏览器看看,或换台机器看看。

 

 五、本地没问题,部署到服务器有问题

原因:自定义的接口没配置对,如下图没有配置路由,就会报错。

 

 

 

六、前后台分离,后端分配本地ip不行给前端调用,发现不可以,只能分配外网IP

 

七、前后台发布在一起

将前端发布后的dist文件里面的内容(只要复制dist里面的内容)直接放到wwwroot (项目的wwwroot)文件下即可(前端http.js里面的ipaddress值改为/)
注意:如果是vue3版本请将后端代码:Startup.cs中的app.UseDefaultFiles();注释掉

 app.UseDefaultFiles();

八、突然报错:was loaded over an insecure connection. This file should be served over HTTPS.

 现象是所有的下载都出现了问题。而且报不安全之类的提示。

解决办法:网络增加https证书。

 

 

 
posted @ 2021-04-17 08:50  丁焕轩  阅读(712)  评论(0编辑  收藏  举报