.NET WebApi 发布到服务器(windows)并开放端口
创始人
2025-01-19 21:32:58
0

目录

1.前言

2.发布前的准备

3.打包发布(交叉编译)

3.1更改生成xml文件的设置

3.2进入WebApi项目,右键发布

3.3发布设置------勾选在发布前删除现有文件

4.发送件至服务器

5.服务器安装对应环境

5.1安装IIS

5.2安装Hosting Bundle

6.发布

7.配置端口

8.各类报错

8.1    500.19 Internal Server Error

8.2    500.19 Internal Server Error

8.3找不到页面

8.4找不到页面

8.5显示500.31/32


1.前言

第一次接触确实很迷茫

在朋友、老师与多篇文章帮助下最终还是完成了测试。相当感谢。

​​​​​​发布.net6 WebApi项目到IIS会踩到的坑(500、404) - 简书 (jianshu.com)

这一篇总结了很多错误类型,可以查阅。

aps.net core 6.0 web API & SwaggerUI & IIS部署-CSDN博客

没有服务器的可以选择这篇,直接内网穿透。

.net 6 Core 发布项目 并且部署IIS_专注开发岗位的小白的博客-CSDN博客

这一篇帮忙解决了ASP.NET Core Runtime 6.0.24与让swagger显示出来(这里我也不知道有没有用到,不过我是照着敲得)。

配置过程中可能会有报错,可以翻阅第八部分. 

2.发布前的准备

1.服务器(Windows)(后续会出Linux,等等吧)(windows图形化确实方便,但是占用资源太高,而且也没有docker里面运行安全)。

2.可供调试的项目,新建的都可以。

3.打包发布(交叉编译)

3.1更改生成xml文件的设置

首先右键项目点击属性

生成里面勾选生成api文档的文件

这里也是一个坑,不生成运行不起来。

3.2进入WebApi项目,右键发布

3.3发布设置------勾选在发布前删除现有文件

哥们就是在这里踩的大雷,整了半天,之前发布的没有删除,三百多个文件我还很懵逼,最后其实只有33个。文件的多少是根据项目的大小与项目本身的文件的数量决定的。

显示所有设置里面勾选在发布前删除现有文件,第一次发布以前里面应该是空的,如果多次发布还是推荐勾选上。

然后进入发布的文件夹\bin\Release\net6.0\publish

这是一些文件的作用,随便搜了点。。。。

  1. appsettings.Development.json 和 appsettings.json: 这两个文件用于存储应用程序的配置设置。这些设置可以包括连接字符串、应用程序的行为配置等。
  2. CQIE.FC.NOS.DataAccess 和其他类似的DLL(动态链接库)文件:这些是包含应用程序的代码的库文件。它们通常包含程序集,这些程序集实现应用程序的不同功能。
  3. CQIE.FC.NOS.exe: 这是应用程序的可执行文件。它包含程序的入口点,并运行应用程序。
  4. CQIE.FC.NOS.pdb: 这是程序数据库文件,它包含调试符号,用于在调试应用程序时帮助找到源代码的行信息。
  5. CQIE.FC.NOS.runtimeconfig.json: 这个文件包含运行时配置选项,例如垃圾回收设置、JIT编译器设置等。
  6. Microsoft.EntityFrameworkCore.dll 和其他与Entity Framework相关的DLL:这些是与Entity Framework相关的库文件,它是一个对象关系映射(ORM)框架,用于在.NET应用程序中管理数据库操作。
  7. Microsoft.Extensions.Configuration.Json.dll 和其他与Microsoft.Extensions相关的DLL:这些库文件提供对配置、日志、依赖注入等功能的支持。
  8. web.config: 这是一个XML文件,用于存储ASP.NET应用程序的配置设置,例如HTTP处理程序映射、安全设置、数据库连接字符串等。
  9. Newtonsoft.Json.dll: 这是一个流行的JSON库,用于在.NET应用程序中处理JSON数据。
  10. Swashbuckle.AspNetCore.Swagger.dllSwashbuckle.AspNetCore.SwaggerGen.dllSwashbuckle.AspNetCore.SwaggerUI.dll: 这些是与Swashbuckle相关的库文件,它用于在ASP.NET Core应用程序中生成Swagger文档和UI,以便更好地描述和测试API。
  11. Pomelo.EntityFrameworkCore.MySql.dll: 这是一个用于支持MySQL数据库的Entity Framework Core提供者。

4.发送件至服务器

这部分没什么好讲的,无论你是qq,微信各种可以传递文件的引用都可以。这里比较推荐QQ邮箱,压缩了直接发过去就好了。然后下载解压就好了。

5.服务器安装对应环境

5.1安装IIS

如何安装IIS_刘桂香263的博客-CSDN博客

这个里面是教程

或者看我我上传的一篇pdf,我朋友学校实验的安装步骤,刚写博客不太清楚这东西怎么玩哈。我上传以后不知道跑哪里去了。(我靠,看了下,下载好像要收钱,没必要下了)。

IIS是什么?有什么用?怎么用?-CSDN博客

Internet Information Service(IIS)是windows开设web网页服务的组件,用来搭载网站运行程序的平台的。还能提供FTP,SMTP等服务。

IIS这边不知是Windows版本问题还是怎么着,IIs有些直接在开始中直接添加,有一些在下图中。 

5.2安装Hosting Bundle

下载 .NET 6.0 (Linux、macOS 和 Windows) (microsoft.com)

安装成功会显示

好像就这两个,sdk似乎不太需要。前面的教程有些有,有些没有。如果运行不起在安装也不迟。

6.发布

运用池中将你需要的更改为无托管集成即可

然后网站中添加网站

然后点击右边的浏览

出现这个页面补充好路由即可

7.配置端口

服务器这边找到安全组配置端口

按照格式更改即可,只需更改端口范围,你的IIS里面配置的端口即是。(出入都配置一下吧,我记不住了)

本地中添加公网IP就可以访问了。欧克

8.各类报错

我这边没截图了,用的下面博客的,我也基本上遇到了这些问题,比他遇见的更多

发布.net6 WebApi项目到IIS会踩到的坑(500、404) - 简书 (jianshu.com)

8.1    500.19 Internal Server Error

未安装Hosting Bundle

8.2    500.19 Internal Server Error

权限不足添加一个就好了,踩雷++

8.3找不到页面

当前环境如果为测试环境,则启动Swagger,否则不启动,且.NETCORE WEB API项目默认就是测试环境,所以一旦发布到正式环境后,就不会运行启动Swagger代码。

去掉if (app.Environment.IsDevelopment())即可。

8.4找不到页面

可能是文件不在了,重新按第三部分生成即可。

8.5显示500.31/32

大概率就是导出的文件有问题,看第三部分打包发布即可。

8.6 401.3

同8.2

8.7 403.14

同xml那个问题

9.补充在线静态资源

同样的步骤,资源改为你的图片文件夹即可,添加一个everyone,以及开放端口即可。

相关内容

热门资讯

盘点一款!卡农大厅辅助,菜鸟黑... 盘点一款!卡农大厅辅助,菜鸟黑桃a3作弊,法门教程(有挂攻略)1、下载好卡农大厅辅助正确养号方法之后...
技术分享!广东闲来辅助神器免费... 技术分享!广东闲来辅助神器免费版,捉住捣蛋鸡作弊,举措教程(有挂详情)1、超多福利:超高返利,海量正...
必知教程!仟众部落辅助,冰球突... 必知教程!仟众部落辅助,冰球突破辅助软件,方案教程(果真有挂)1、完成仟众部落辅助辅助器v3.3的残...
最新研发!吉祥填大坑有插件吗,... 最新研发!吉祥填大坑有插件吗,四川途游破解安装包,大纲教程(有挂细节)1、四川途游破解安装包脚本辅助...
一分钟揭秘!吉祥填大坑辅助器攻... 一分钟揭秘!吉祥填大坑辅助器攻略,指尖四川辅助破解版,练习教程(有挂工具)1、吉祥填大坑辅助器攻略有...
总算了解!凑一桌小程序辅助器,... 总算了解!凑一桌小程序辅助器,开心游戏快跑辅助,办法教程(有挂助手)1、任何凑一桌小程序辅助器透视是...
一起来讨论!开心庄园脚本辅助器... 一起来讨论!开心庄园脚本辅助器,全来潜山跑风辅助器,妙计教程(有挂技巧)1、玩家可以在全来潜山跑风辅...
每日必备!朋友局app辅助器下... 每日必备!朋友局app辅助器下载,爱玩娱乐暗堡辅助,机巧教程(真的有挂)1)朋友局app辅助器下载辅...
终于清楚!蜀山四川小程序破解版... 终于清楚!蜀山四川小程序破解版下载,拱趴大菠萝技巧,步骤教程(竟然有挂)1、不需要AI权限,帮助你快...
大神推荐!潮友会辅助器,多乐辅... 大神推荐!潮友会辅助器,多乐辅助器免费版,手册教程(有挂实锤)1)潮友会辅助器有没有挂:进一步探索潮...