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

.NET Core 2.0部署至IIS后出现‘Index视图未找到’错误求助

解决.NET Core 2.0部署到IIS后找不到Index视图的问题

我之前也踩过完全一样的坑!试了几个办法终于搞定了,你可以挨个排查:

  • 确保视图文件被包含在发布包中
    .NET Core默认发布时可能不会自动把.cshtml文件复制到发布目录,尤其是用默认模板创建的项目。你需要在项目的.csproj文件里添加以下配置,强制视图文件被发布:

    <ItemGroup>
      <Content Update="Views\**\*.cshtml">
        <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
      </Content>
    </ItemGroup>
    

    或者在发布项目时,在发布设置里勾选「所有文件」选项,确保视图文件被复制到目标目录。

  • 修正IIS应用程序池的核心设置

    • 应用程序池必须设置为无托管代码!因为.NET Core应用是自主托管运行的,IIS仅作为反向代理,选成.NET Framework版本肯定会出问题。
    • 同时检查应用程序池的身份权限,确保它拥有发布目录的读取权限,不然即使文件存在也无法访问。
  • 调整ContentRoot的路径配置
    你用Directory.GetCurrentDirectory()获取内容根目录,但IIS运行环境下的当前目录和本地开发时完全不同!建议换成官方推荐的默认构建器,它会自动处理IIS环境的路径问题:
    替换你当前的Main方法代码为:

    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }
    
    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
    
  • 确认ASP.NET Core Module已安装
    必须在IIS服务器上安装ASP.NET Core Module (ANCM),这是.NET Core应用在IIS上运行的核心组件。如果没装,赶紧安装对应版本的.NET Core托管捆绑包,安装完成后重启IIS再重新部署。

  • 查看详细日志定位深层问题
    如果上面的方法都没用,打开应用的日志文件(默认在wwwroot/logs目录),或者在IIS里启用失败请求跟踪,获取更详细的错误信息——有时候视图找不到可能是隐藏的权限问题或者路径解析错误。

我当时是因为没配置视图文件的发布复制,加上应用程序池选错了版本,改完这两个地方就正常了,你先从这些点入手排查应该能解决!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:34:34