.net core webapi/mvc阿里云服务器部署 - 错误解决

错误及解决方案

缺少web.config配置

确保 web.config 文件格式正确,内容完整。以下是一个标准的 .NET Core web.config 示例:

csharp 复制代码
   <?xml version="1.0" encoding="utf-8"?>
   <configuration>
     <location path="." inheritInChildApplications="false">
       <system.webServer>
         <handlers>
           <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
         </handlers>
         <aspNetCore processPath="dotnet" arguments=".\YourAppName.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
       </system.webServer>
     </location>
   </configuration>
   

YourAppName.dll : 你的dll名称

HTTP 错误 500.19 - Internal Server Error

无法访问请求的页面

检查 IIS 配置

1. 确保 .NET Core Hosting Bundle 已安装

下载并安装最新版本的 .NET Core Hosting Bundle

安装后 重启 IIS(运行 iisreset)

2. 检查 应用程序池 配置

打开 IIS 管理器 → 应用程序池

确保你的网站使用的应用程序池:

.NET CLR 版本:无托管代码

托管管道模式:集成

如果配置不正确,修改后 重启应用程序池

3. 检查 IIS MIME 类型

确保 .config 文件类型被正确识别:

打开 IIS 管理器 → MIME 类型

确保 .config 的 MIME 类型是 application/xml 或 text/xml

检查文件权限

1. 确保 IIS 用户 有权限访问网站目录

右键网站文件夹 → 属性 → 安全

确保 IIS_IUSRS 和 IUSR 有 读取 权限

如果启用了日志(stdoutLogEnabled="true"),确保 logs 目录有 写入 权限

2. 检查 web.config 文件权限

确保 web.config 文件没有被其他程序锁定(如杀毒软件)

尝试删除 web.config,重新创建一个干净的版本

启用详细错误日志

1. 启用 IIS 详细错误

打开 IIS 管理器 → 错误页面

选择 详细错误(而不是 自定义错误)

这样可以看到更具体的错误信息

2. 启用 .NET Core 日志

在 web.config 中设置 stdoutLogEnabled="true"

确保 logs 目录存在,并检查 stdout_*.log 文件是否有错误信息

安装完 最新版本的 .NET Core Hosting Bundle 为什么

HTTP Error 500.32 - Failed to load .NET Core host Common solutions to

this issue: The app was likely published for a different bitness than

w3wp.exe/iisexpress.exe is running as. Troubleshooting steps: Check

the system event log for error messages Enable logging the application

process' stdout messages Attach a debugger to the application process

and inspect For more guidance on diagnosing and handling these errors,

visit Troubleshoot ASP.NET Core on Azure App Service and IIS.

一、错误原因分析

位数不匹配(最常见)

你的 .NET Core 应用可能是 64位,但 IIS 应用池运行在 32位模式(或相反)。

检查方法:

打开 IIS 管理器 → 应用程序池 → 选择你的应用池 → 高级设置 → 启用 32 位应用程序。 如果你的应用是 64 位,确保 启用

32 位应用程序 = False。 如果你的应用是 32 位,确保 启用 32 位应用程序 = True。

.NET Core 运行时未正确安装

  • 即使安装了 .NET Core Hosting Bundle,可能仍然缺少对应的运行时。
    检查方法:
    打开命令行,运行:
  • cmd
  • dotnet --list-runtimes

这里是引用

  • 确保你的应用目标运行时(如 .NET Core 6.0/7.0/8.0)已安装。

应用发布配置问题

  • 如果你的应用是 框架依赖(Framework-dependent),但服务器未安装对应的运行时,会导致此错误。
  • 如果你的应用是 自包含(Self-contained),但发布时选择了错误的位数(x86/x64),也会导致此错误。

检查应用发布模式

  • 如果你的应用是 框架依赖(Framework-dependent):
  • 确保服务器安装了对应的 .NET Core 运行时。
  • 检查 web.config 中的 processPath 是否正确指向 dotnet.exe

检查和配置防火墙或安全组规则(开放 5000 端口)

一、Windows 服务器防火墙配置

1. 检查防火墙是否允许 5000 端口
  • 打开 Windows 防火墙:
  • 按 Win + R,输入 wf.msc,回车打开 高级安全 Windows Defender 防火墙。
  • 检查入站规则:
  • 点击左侧 入站规则,查看是否有允许 5000 端口的规则。
  • 如果没有,需要手动添加。
2. 添加防火墙入站规则(允许 5000 端口)
  • 右键点击 入站规则 → 新建规则。
  • 选择 端口 → TCP → 特定本地端口 → 输入 5000。
  • 选择 允许连接。
  • 选择适用的配置文件(域、专用、公用)。
  • 输入规则名称(如 "Allow Port 5000")并完成。
  • 重启防火墙或服务器(可选,通常立即生效)。

配置阿里云服务器出入规则

  • 快速添加规则


这是我.net 后端目前遇到过的问题 , 后续遇到报错还会把解决方案记录在此

新节点 2025.9.10

部署第二个iis问题

.net core运行时已经部署后,vs发布打包

运行时报错

下载对应版本的 Hosting Bundle:
Hosting Bundle

.runtimeconfig.json中可以看到 , "version": "3.1.32"

则需要下载并安装 ASP.NET Core 3.1.32 Runtime

多个部署需要阿里云服务器规则修改

注意:

  • 打开 IIS 管理器 → 应用程序池 → 选择你的应用池 → 高级设置 → 启用 32 位应用程序。
  • 如果你的应用是 64 位,确保 启用 32 位应用程序 = False。
  • 如果你的应用是 32 位,确保 启用 32 位应用程序 = True。

0911

添加功能

  • 打开服务器管理器
  • 添加角色和功能

  • 添加功能

sql数据库

sqlserver安装
b站安装sqlserver最新教程

遇到问题下载的最新sql mmsm(SQL Server Management Studio)21

下载的文件名为 "vs_ssms" 是因为 SSMS(SQL Server Management Studio)的安装程序现在与 Visual Studio 安装程序集成在一起。这种集成方式意味着 SSMS 的安装过程需要通过 Visual Studio 安装程序来完成,因此文件名中会包含 "vs" 前缀。

SSMS 是一种集成环境,用于管理从 SQL Server 到 Azure SQL 数据库的任何 SQL 基础结构,提供配置、监控和管理工具。虽然文件名可能与传统的 SSMS 安装包不同,但这是微软当前的官方安装方式,确保了与 Visual Studio 工具链的兼容性和一致性。


如果没有安装 Visual Studio,您仍然可以下载和使用旧版本的 SSMS。SSMS 的某些旧版本是独立安装包,不需要依赖 Visual Studio 安装程序。不过,需要注意的是,旧版本可能缺少一些最新功能或安全更新,因此建议根据实际需求选择合适的版本。

您可以通过 Microsoft 官方网站获取 SSMS 的历史版本下载资源。例如,访问 SSMS 的发布说明页面,可以找到相关版本的下载链接:sql-server-ver16

sql数据库导出/导入

  • 导出

  • 选中需要导出的数据库,任务 -> 生成脚本
    - 下一步到选择对象

  • 选择该数据库中具体的某些表

  • 另存为脚本文件

  • 选择保存路径

  • 注意:设置高级

  • 如果需要数据选择架构和数据

  • 完成


  • 导入
  • 新建数据库
  • 输入数据库名称
  • 将刚刚保存的sql脚本拖入窗口
  • F5执行脚本
脚本报错

数据库中已经有了这个表

修改数据库名称

  • 改为刚刚新建的数据库
相关推荐
睡不醒的猪儿2 小时前
nginx日志同步阿里云datahub后写入数据库
数据库·nginx·阿里云
极光雨雨4 小时前
Java Spring MVC 中 WebMvcConfigurer 和 HandlerInterceptor之间的关系和用法案例
java·spring·mvc
TG_yunshuguoji12 小时前
阿里云代理商:阿里云CDN访问问题怎么诊断?
运维·服务器·阿里云·云计算
数据库知识分享者小北21 小时前
AI Agent的未来之争:任务规划,该由人主导还是AI自主?——阿里云RDS AI助手的最佳实践
数据库·阿里云·数据库rds
电话交换机IPPBX-3CX21 小时前
IPPBX 3CX V20 Update7 上架阿里云市场镜像
阿里云·云计算·ippbx·电话交换机
凸头21 小时前
MySQL 的四种 Binlog 日志处理工具:Canal、Maxwell、Databus和 阿里云 DTS
数据库·mysql·阿里云
观测云21 小时前
阿里云 RDS MySQL 可观测性最佳实践
mysql·阿里云·云计算
TG_yunshuguoji1 天前
阿里云渠道商:如何建立阿里云的权限模型?
运维·服务器·阿里云·云计算
Serverless社区2 天前
加速智能体开发:从 Serverless 运行时到 Serverless AI 运行时
阿里云·云原生·serverless