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

部署ASP.NET Core 6.0 MVC应用至服务器失败,求解决指引

ASP.NET Core 6 MVC部署IIS后登录跳转404的解决方向
  • 检查路由配置
    确认Program.cs(ASP.NET Core 6采用顶级语句)中的路由规则是否正确,默认MVC路由应为:

    app.MapControllerRoute(
        name: "default",
        pattern: "{controller=Home}/{action=Index}/{id?}");
    

    同时检查登录表单的action属性,不要写LoginController,需遵循路由规则,比如指向/Login/Login(假设登录方法名为Login),控制器名称不需要带Controller后缀。

  • 验证发布配置与文件

    • 确认VS发布时选择ASP.NET Core Web部署,目标运行时选Windows x64,发布后服务器根目录需包含web.config文件,检查其中aspNetCore节点配置:
      <aspNetCore processPath="dotnet" arguments=".\你的应用程序.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
      
    • 确保发布文件包含所有必要的dll、Views文件夹(特别是Login相关视图),无关键文件遗漏。
  • 检查IIS站点配置

    • 应用程序池设置为无托管代码,避免IIS尝试用传统.NET框架托管ASP.NET Core应用。
    • 站点物理路径指向发布后的根目录(包含web.config的文件夹),不要指向子目录。
    • 确认IIS已安装URL重写模块,ASP.NET Core依赖该模块将请求转发到Kestrel服务器。
  • 排查控制器与方法有效性

    • 确认LoginController类继承自Controller,命名空间正确,且登录方法标记了[HttpPost](如果是表单提交),方法参数与表单字段匹配。
    • 检查发布后的dll,确保LoginController已被编译进去,未被排除在发布范围外。
  • 查看日志定位问题

    • 开启web.config中的stdoutLogEnabled="true",设置stdoutLogFile路径,重启站点后尝试登录,查看日志文件中的具体错误信息。
    • 查看Windows事件查看器的应用程序日志,筛选ASP.NET Core相关条目,获取更详细的异常信息。
  • 直接测试路由访问
    在浏览器中直接输入http://站点地址/Login/登录方法名(例如http://xxx.xxx.xxx.xxx/Login/Login),判断是路由匹配问题,还是表单提交的路径错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 12:40:30