You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 6 Linux环境下ASP.NET View Component加载失败求助

ASP.NET Core View Component 在Linux桌面环境加载失败问题

问题背景与排查过程

  • 应用在Windows下运行正常,Linux服务器生产环境稳定运行多年,但Garuda Linux(基于Arch)+ JetBrains Rider环境中打开解决方案时,项目完全无法加载;同一项目在Windows虚拟机可正常运行。
  • 新建干净ASP.NET项目可正常运行,逐个复制原有文件测试:仅Pages/Shared/Components下的ProductBox.cs和ProductBoxModel.cs存在时,项目运行正常。
  • 添加Pages/Shared/Components/ProductBox/Default.cshtml后,项目加载失败无明确报错:Firefox显示空白页,Chrome触发安全警告后返回404;删除该文件后应用恢复正常。
  • 尝试将Pages/Shared/Components/迁移到Views/Shared/Components目录,问题依旧存在。
  • 即使未在代码中引用该View Component,仅文件存在就会导致Linux环境下应用崩溃。

环境与代码信息

  • 已安装.NET 6,测试基于模板创建的干净项目。
  • ProductBox.cs代码:
public class ProductBox : ViewComponent
{
    public IViewComponentResult Invoke() => View();
}
  • Default.cshtml为空文件。
非Windows环境解决方案尝试方向
  • 检查文件系统大小写一致性:Linux为大小写敏感系统,确保View Component的类名、文件夹名、视图文件名大小写完全匹配(如ProductBox类对应文件夹必须为ProductBox,Default.cshtml大小写不能偏差)。
  • 清理项目与IDE缓存:
    • 删除项目根目录下的bin和obj文件夹,重新构建:
      rm -rf bin obj
      dotnet build
      
    • 清除Rider缓存:通过File > Invalidate Caches...选项清除缓存并重启IDE。
  • 更新.NET SDK到最新补丁版:运行dotnet --version查看版本,若不是最新,通过Arch包管理器更新:
    sudo pacman -S dotnet-sdk-6.0
    
  • 修复视图文件权限:确保Default.cshtml有可读权限:
    chmod +r Pages/Shared/Components/ProductBox/Default.cshtml
    
  • 启用详细日志排查:在appsettings.json中开启ASP.NET Core调试日志,查看控制台输出定位隐藏错误:
    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Debug"
        }
      }
    }
    

内容的提问来源于stack exchange,提问作者Etienne Charland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 19:18:19