发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)-开发框架文库

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

目录

本文摘要

发布CSFramework.LicenseV3软件授权注册系统的WebApi服务到IIS上,写了这篇完整版文章,分享给大家。

本文内容:

  • VS2022发布.NET8+ASP.NETCore 网站(WebApi服务器)
  • 部署WebApi服务器到IIS服务器
  • 配置dns域名
  • 配置https协议

VS2022配置发布

CS软件授权注册系统-部署WebApi服务器

CS软件授权注册系统-部署WebApi服务器

CS软件授权注册系统-部署WebApi服务器

VS2022发布WebApi

点击【发布】按钮。

CS软件授权注册系统-部署WebApi服务器

CS软件授权注册系统-部署WebApi服务器

IIS服务器部署WebApi

将程序文件复制到云服务器

打开阿里云ECS服务器,在c:\盘建立一个目录,如:demo-webapi-license-v3

将Debug-Publish\目录下所有文件复制到云服务器新建目录下。

CS软件授权注册系统-发布/部署WebApi服务器

添加网站

打开IIS管理器,添加网站:

CS软件授权注册系统-发布/部署WebApi服务器

CS软件授权注册系统-发布/部署WebApi服务器

1、因ECS服务器部署多个Web站点,不能直接使用80端口。

2、配置一个dns域名: license.csframework.com。

配置应用程序池

CS软件授权注册系统-发布/部署WebApi服务器

CS软件授权注册系统-发布/部署WebApi服务器

配置dns域名

主机名使用 license.csframework.com, 需要配置dns域名。

打开阿里云控制台,我的域名,点击解析,添加记录

CS软件授权注册系统-发布/部署WebApi服务器

配置端口

配置http/https两种网站类型:

  • http: 80端口
  • https: 19980端口

在IIS服务器修改WebApi服务器端口:

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

阿里云ECS服务器配置19980端口

使用阿里云ECS服务器,需要添加自定义端口安全规则。

安全组 -> 管理规则

CS软件授权注册系统-发布/部署WebApi服务器

入方向,手动添加

CS软件授权注册系统-发布/部署WebApi服务器

CS软件授权注册系统-发布/部署WebApi服务器

CS软件授权注册系统-发布/部署WebApi服务器

配置https协议 (申请ssl证书)

首先要在阿里云申请免费ssl证书,每年可以免费申请20个证书,有效期3个月。1年的证书需要收费。

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

下载证书:

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

下载证书文件,在ECS服务器上安装证书:

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

输入密码,下一步,最后点【完成】安装证书。

重点:绑定https,选择ssl证书。

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

选择正确的ssl证书,如下图所示:

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8+ASP.NETCore)

 恭喜您,完成配置!

完成配置,重启应用程序池,开始测试api接口和swagger。

测试WebApi服务器

获取服务器时间

https://license.csframework.com:19980/api/license/getservertime

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8)

swagger主页

http://license.csframework.com:19980/swagger/index.html

CS软件授权注册系统-发布/部署WebApi服务器(IIS+.NET8)

踩坑及解决方案

1、HTTP Error 500.31 - Failed to load ASP.NET Core runtime,Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.

解决方案:

HTTP Error 500.31 - Failed to load ASP.NET Core runtime,Microsoft.NetCore.App or Microsoft.AspNetCore.App was not found.-开发框架文库

.NET8/ .NETCore /ASP.NETCore 部署WebApi到IIS服务器需要安装的运行环境-开发框架文库

2、.NETCore WebApi发布到IIS服务器无法打开swagger

解决方案:

.NETCore WebApi发布到IIS服务器无法打开swagger-开发框架文库

footer .net快速开发平台创造卓越品质-开发框架文库

<think>我们正在处理一个关于在IIS上托管.NET9 API时遇到的HTTP错误500.30(ASP.NETCore应用程序启动失败)的问题。根据引用内容,我们可以得到一些线索:引用[1]提到将web.config文件中的hostingModel="inprocess"改为"OutOfProcess"或删除该属性。引用[2]提到检查是否安装了.NET6环境,并查看事件日志以及给Everyone用户授权。注意:用户的问题是关于.NET9 API,而引用中提到了.NET6。我们需要考虑.NET9的类似情况,因为.NET9是最新的,可能环境配置类似。步骤:1.检查web.config文件:在IIS中托管ASP.NET Core应用时,web.config文件中的hostingModel设置很重要。如果设置为"InProcess"(进程内托管),但环境配置不正确,可能导致启动失败。可以尝试改为"OutOfProcess"(进程外托管)。2.检查运行时环境:确保服务器上已经安装了.NET9运行时(或更高版本,具体取决于项目目标框架)。如果没有安装,需要下载并安装。3.检查事件日志:在Windows事件查看器的应用程序日志中查找详细错误信息,这有助于定位问题。4.权限问题:确保应用程序池的标识用户(或Everyone,但更推荐使用应用程序池标识)对发布文件夹有适当的读写权限。此外,可能还有其他原因,如缺少依赖项、端口冲突等,但上述步骤是常见解决方案。因此,我们将按照以下步骤为用户提供解决方案:</think>### 解决 IIS 托管 .NET 9 API 的 HTTP Error 500.30 问题 HTTP Error 500.30 表示 ASP.NET Core 应用程序在 IIS 中启动失败。以下是系统性的解决方案: #### 1. **修改托管模式** ```xml <!-- 修改 web.config 文件 --> <aspNetCore processPath="dotnet" arguments=".\YourApp.dll" hostingModel="OutOfProcess" <!-- 关键修改 --> stdoutLogEnabled="true" /> ``` - **原因**:`InProcess` 模式要求 IIS.NET 运行时严格匹配,.NET 9 可能不兼容 - **操作**:将 `hostingModel` 改为 `OutOfProcess` 或直接删除该属性[^1] #### 2. **验证运行时环境** ```powershell # 检查已安装的运行时 dotnet --list-runtimes ``` - 确保服务器安装 **.NET 9 运行时** - 下载地址:[.NET 9 Runtime](https://dotnet.microsoft.com/download/dotnet/9.0) #### 3. **检查权限设置** - 在 IIS 中右键点击应用 → **编辑权限** → **安全** 选项卡 - 添加 `IIS_IUSRS` 和 `IUSR` 的完全控制权限 - 发布文件夹授予 `Everyone` 读取/执行权限(临时调试用)[^2] #### 4. **查看详细日志** - **事件查看器**:`Windows 日志 > 应用程序` 查找 .NET 错误事件 - **启用 stdout 日志**: ```xml <aspNetCore ... stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" /> ``` - 日志路径:应用根目录下的 `logs` 文件夹 #### 5. **其他关键检查** - **应用池配置**: - .NET CLR 版本设置为 **无托管代码** - 标识改为 **ApplicationPoolIdentity** - **端口冲突**:检查 `launchSettings.json` 与 IIS 绑定端口是否冲突 - **依赖缺失**:在服务器执行 `dotnet restore` #### 6. **部署验证** ```powershell # 在服务器手动测试应用 cd /d C:\inetpub\your-app dotnet YourApp.dll ``` - 若控制台运行成功,问题在 IIS 配置 - 若失败,检查项目依赖和运行时 > **注意**:.NET 9 是最新版本,需确保 IIS 模块 `AspNetCoreModuleV2` 已更新。可通过 [安装 Hosting Bundle](https://dotnet.microsoft.com/download/dotnet/9.0) 解决。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值