目录

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文档的文件

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

.NET WebApi 发布到服务器(windows)并开放端口插图

3.2进入WebApi项目,右键发布

.NET WebApi 发布到服务器(windows)并开放端口插图(1)

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

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

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

.NET WebApi 发布到服务器(windows)并开放端口插图(2)

.NET WebApi 发布到服务器(windows)并开放端口插图(3)

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

.NET WebApi 发布到服务器(windows)并开放端口插图(4)

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

  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有些直接在开始中直接添加,有一些在下图中。.NET WebApi 发布到服务器(windows)并开放端口插图(5) 

5.2安装Hosting Bundle

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

.NET WebApi 发布到服务器(windows)并开放端口插图(6)

安装成功会显示

.NET WebApi 发布到服务器(windows)并开放端口插图(7)

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

6.发布

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

.NET WebApi 发布到服务器(windows)并开放端口插图(8)

.NET WebApi 发布到服务器(windows)并开放端口插图(9)

然后网站中添加网站

.NET WebApi 发布到服务器(windows)并开放端口插图(10)

然后点击右边的浏览

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

.NET WebApi 发布到服务器(windows)并开放端口插图(11)

.NET WebApi 发布到服务器(windows)并开放端口插图(12)

7.配置端口

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

.NET WebApi 发布到服务器(windows)并开放端口插图(13)

.NET WebApi 发布到服务器(windows)并开放端口插图(14)

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

.NET WebApi 发布到服务器(windows)并开放端口插图(15)

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

8.各类报错

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

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

8.1    500.19 Internal Server Error

.NET WebApi 发布到服务器(windows)并开放端口插图(16)

未安装Hosting Bundle

8.2    500.19 Internal Server Error

.NET WebApi 发布到服务器(windows)并开放端口插图(17)

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

.NET WebApi 发布到服务器(windows)并开放端口插图(18)

8.3找不到页面

.NET WebApi 发布到服务器(windows)并开放端口插图(19)

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

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

8.4找不到页面

.NET WebApi 发布到服务器(windows)并开放端口插图(20)

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

8.5显示500.31/32

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

8.6 401.3

同8.2

.NET WebApi 发布到服务器(windows)并开放端口插图(21)

8.7 403.14

同xml那个问题

.NET WebApi 发布到服务器(windows)并开放端口插图(22)

9.补充在线静态资源

.NET WebApi 发布到服务器(windows)并开放端口插图(23)

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

.NET WebApi 发布到服务器(windows)并开放端口插图(24)

本站无任何商业行为
个人在线分享 » .NET WebApi 发布到服务器(windows)并开放端口
E-->