.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执行脚本
脚本报错

数据库中已经有了这个表

修改数据库名称

  • 改为刚刚新建的数据库
相关推荐
Fency咖啡7 小时前
Spring 基础核心 - SpringMVC 入门与请求流程
java·后端·spring·mvc
whltaoin16 小时前
AI 超级智能体全栈项目阶段四:学术分析 AI 项目 RAG 落地指南:基于 Spring AI 的本地与阿里云知识库实践
人工智能·spring·阿里云·向量数据库·rag
XiaoLeisj2 天前
【SpringAI】第四弹:深入解析 Rag 检索增强工作流程、最佳实践和调优
阿里云·原型模式·rag·spring ai·灵积大模型
指针不南2 天前
Android Studio | 设置国内代理(SDK 设置国内代理(阿里云镜像))
android·阿里云·android studio
csdn_aspnet2 天前
使用 Entity Framework Code First 方法创建 ASP.NET Core 5.0 Web API
.netcore·webapi
小先生8122 天前
.NET Core项目中 Serilog日志文件配置
c#·.netcore
爱吃香蕉的阿豪2 天前
.NET Core 中 System.Text.Json 与 Newtonsoft.Json 深度对比:用法、性能与场景选型
数据库·json·.netcore
csdn_aspnet2 天前
ASP.NET Core 10.0 的主要变化
.netcore
syounger2 天前
SAP与阿里巴巴战略合作升级:四大核心云解决方案落地阿里云
大数据·人工智能·阿里云