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

ASP.NET中无.aspx扩展名跳转本地IIS报404问题求助

解决无.aspx扩展名ASP页面本地IIS 404问题

针对你遇到的无扩展名ASP页面跳转本地404、服务器正常的情况,核心原因是本地IIS没有配置对无扩展名请求的处理规则,以下是几种可行的解决方法,优先推荐第一种(和服务器配置匹配度最高):

方法一:配置URL重写规则(推荐)

服务器大概率是用了URL重写来映射无扩展名请求到.aspx页面,步骤如下:

  1. 确认本地IIS已安装URL重写模块:打开IIS管理器,左侧菜单如果没有“URL重写”,就通过“管理工具”里的“Web平台安装程序”搜索并安装该模块。
  2. 在项目根目录的web.config中添加重写规则:
<system.webServer>
  <rewrite>
    <rules>
      <rule name="Map No-Extension to ASPX" stopProcessing="true">
        <match url="^([^.]+)$" />
        <conditions logicalGrouping="MatchAll">
          <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
        </conditions>
        <action type="Rewrite" url="{R:1}.aspx" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

这个规则会把所有非文件、非目录的无扩展名请求,自动重写为带.aspx的路径(比如./CPersonalRegister会被映射到./CPersonalRegister.aspx)。

方法二:添加ASP.NET无扩展名处理程序映射

如果服务器用的是扩展名映射而非重写,可以这么配置:

  1. 打开IIS管理器,选中你的站点,进入“处理程序映射”。
  2. 点击右侧“添加脚本映射”:
    • 请求路径填*
    • 可执行文件选择.NET Framework 4.0对应的aspnet_isapi.dll,路径一般是C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll(64位系统选Framework64目录下的)
    • 名称随便填,比如“ASP.NET无扩展名映射”
    • 勾选“允许执行脚本”后确认。
      注意:这种方式会让所有无扩展名请求都走ASP.NET处理,可能干扰静态文件(如图片、CSS)的访问,不如重写灵活。

方法三:配置ASP.NET路由

如果项目本身使用了ASP.NET路由,可在Global.asax的Application_Start方法中添加路由规则:

void Application_Start(object sender, EventArgs e)
{
    // 映射无扩展名页面到对应的.aspx文件
    RouteTable.Routes.MapPageRoute(
        "NoExtensionPageRoute",
        "{pageName}",
        "~/ {pageName}.aspx"
    );
}

这种方式适合项目本身依赖路由机制的场景,访问CPersonalRegister时会自动匹配到CPersonalRegister.aspx。

额外注意事项

  • 确保本地IIS应用程序池的.NET Framework版本设置为4.0,且托管模式(集成/经典)和服务器保持一致。
  • 最稳妥的方式是直接查看服务器上的web.config和IIS配置,把对应的规则拷贝到本地,完全对齐服务器环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 16:51:26