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

数据库中已经有了这个表

修改数据库名称

  • 改为刚刚新建的数据库
相关推荐
Adorable老犀牛5 小时前
阿里云 & 腾讯云 API 自动化查询指南
阿里云·自动化·腾讯云
BFT白芙堂8 小时前
GRASP 实验室研究 论文解读 | 机器人交互:基于神经网络引导变分推理的快速失配估计
人工智能·神经网络·机器学习·mvc·人机交互·科研教育机器人·具身智能平台
-KamMinG9 小时前
阿里云ClickHouse数据保护秘籍:本地备份与恢复详解
clickhouse·阿里云·云计算
Serverless社区10 小时前
函数计算进化之路:AI Sandbox 新基座
阿里云·云原生·serverless
看海的四叔11 小时前
【Python】Python解决阿里云DataWorks导出数据1万条限制的问题
开发语言·python·阿里云·dataworks·maxcomputer
爱考证的小刘11 小时前
阿里云ACA认证[特殊字符]阿里云ACP认证
数据库·阿里云·云计算
William_cl14 小时前
MVC 中 AJAX 与前后端交互深度实战(含独家避坑与场景化方案)
ajax·mvc·交互