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

Windows 2008 IIS7环境下无法运行.cshtml页面求助

搞定Razor v2页面在IIS7上无法解析的问题

嘿,我之前也碰到过一模一样的情况!你猜的完全没错——就是因为.cshtml文件没有对应的处理程序映射,IIS根本不知道该用哪个模块去解析Razor代码,只能把源码直接扔给浏览器了。下面是一步步的配置方法,跟着做就行:

第一步:打开IIS管理器,定位到你的网站

  • 打开Internet信息服务(IIS)管理器,找到你发布的目标网站并点击进入。
  • 在右侧的“功能视图”里,找到处理程序映射,双击打开它。

第二步:添加.cshtml的模块映射

  • 在处理程序映射页面的右侧“操作”栏,点击添加模块映射。
  • 在弹出的窗口里,按以下信息填写:
    • 请求路径:直接填*.cshtml
    • 模块:选择ManagedPipelineHandler(这是托管代码的核心处理模块)
    • 可执行文件:留空即可,无需填写
    • 名称:随便起个好记的,比如Razor v2 处理cshtml文件
  • 点击窗口里的请求限制按钮,在“映射”选项卡下勾选“文件”,确保只有实际存在的.cshtml文件才会被处理,避免不必要的请求触发。
  • 点击确定时,会弹出是否创建FastCGI应用的提示,直接选否就行。

第三步:确认ASP.NET 4.0已正确注册到IIS

有时候哪怕应用池选了.NET 4.0,IIS也可能没把ASP.NET 4.0的组件注册到位。用管理员权限打开命令提示符,运行这条命令:

%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

这个命令会重新将ASP.NET 4.0注册到IIS,确保所有托管模块都能被识别。

第四步:检查应用池的关键设置

  • 回到你的网站,右键点击应用程序池,找到对应的.NET 4.0池,选择“高级设置”。
  • 确认“托管管道模式”是集成(别选经典模式,Razor在集成模式下才能正常工作)。
  • 另外,“标识”项默认用ApplicationPoolIdentity就足够,要是遇到权限问题,可以改成NetworkService试试。

额外小检查:Web.config配置

要是上面几步做完还是不行,去看看网站根目录的Web.config,确保包含Razor相关的配置节:

<system.web>
  <compilation debug="false" targetFramework="4.0">
    <assemblies>
      <add assembly="System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
      <add assembly="System.Web.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    </assemblies>
  </compilation>
</system.web>
<system.webServer>
  <handlers>
    <add name="cshtml" path="*.cshtml" verb="*" type="System.Web.WebPages.HttpHandler, System.Web.WebPages, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" resourceType="File" requireAccess="Script"/>
  </handlers>
</system.webServer>

要是没有这些内容,手动加进去就行,注意版本号是2.0.0.0,对应你用的Razor v2。

最后重启一下网站和应用池,应该就能正常解析Razor代码了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:16:21