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

发布于:2025-09-11 ⋅ 阅读:(18) ⋅ 点赞:(0)

缺少web.config配置

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

   <?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。

豪豪豪彡


网站公告

今日签到

点亮在社区的每一天
去签到