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

Razor Pages项目发布到Plesk服务器后无法找到部分页面如何解决?

问题原因与排查方案

该问题90%以上是Plesk服务器的站点配置与.NET Core路由规则冲突导致,可按以下步骤逐一排查:

  • 检查站点web.config配置
    Plesk托管的IIS站点会优先读取站点根目录下的web.config规则,需确认配置中包含正确的ASP.NET Core托管转发规则,核心配置片段如下:
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath="dotnet" arguments=".\你的项目名.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
    </system.webServer>
    
    重点确认path="*"规则存在,确保所有请求都转发到.NET Core托管程序,而非IIS直接匹配路径返回404。
  • 检查站点部署路径配置
    如果项目部署在站点子目录而非根目录,需在Startup.cs的Configure方法开头添加路径前缀配置:
    app.UsePathBase("/你的子目录名称");
    
    同时在Plesk站点设置的「ASP.NET Core」选项中,确认「应用程序根目录」指向发布包的根文件夹,而非上层目录。
  • 核对路由配置顺序
    确认Startup.cs中中间件注册顺序符合规范:

    正确顺序为:UseHttpsRedirection → UseStaticFiles → UseRouting → UseAuthorization → UseEndpoints
    顺序错误会导致路由请求被静态文件中间件拦截,本地开发环境兼容的异常顺序在服务器IIS中会直接失效。

  • 核对运行环境依赖
    确认Plesk服务器已安装与开发环境版本完全一致的.NET Core SDK/托管捆绑包,版本不兼容会导致路由规则解析异常。
  • 开启日志定位详细原因
    可将web.config中stdoutLogEnabled设置为true,创建对应logs目录,复现问题后查看生成的运行日志,判断请求是否进入.NET程序,还是在IIS阶段就被拦截返回404。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:15:08