【问题标题】:Razor page not working with RewriteRazor 页面不适用于 Rewrite
【发布时间】:2011-07-13 21:07:35
【问题描述】:

我在 Web 表单应用中有一个 .cshtml 页面。当我直接转到 .cshtml 网址时,它会很好地显示页面。

我还有一个 httpmodule 可以重写 url。当我重写 .cshtml 页面的 url 时,我收到 IIS 错误:

“/”应用程序中的服务器错误。

不提供此类页面。

描述:您拥有的页面类型 未提供请求,因为它有 被明确禁止。这 扩展名“.cshtml”可能不正确。 请查看下面的 URL 并制作 确保拼写正确。

请求的网址:/pages/1.cshtml

版本信息:Microsoft .NET 框架版本:4.0.30319; ASP.NET 版本:4.0.30319.1

显然这是不对的,因为我知道可以提供页面的类型,因为当我直接访问 url 时它可以工作。

我的重写器正在这样做

HttpApplication.Context.RewritePath("~/pages/1.cshtml", true);

我在 Windows 7 的 IIS7.5 上运行它。有谁知道为什么会出现这个错误?关于解决它的任何建议?

【问题讨论】:

  • 看起来这与正在重写的 URL 直接相关。我试图重写一个没有扩展名的 URL ......即。 localhost:1981/rushs-profile 但如果我将 localhost:1981/rushs-profile.cshtml 重写为 ~/pages/1.cshtml 就可以了。
  • 此外,如果我将无扩展名 URL 重写为具有不同类型扩展名的页面,例如 .htm 或 .aspx 页面,它也可以工作。这让我觉得这仅限于将非 .cshtml URL 重写为 .cshtml 页面。

标签: .net iis-7 url-rewriting razor


【解决方案1】:

在这里找到...

http://learn.iis.net/page.aspx/872/webmatrix-beta-release-readme/

您必须将此添加到您的 web.config 中

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

【讨论】:

  • 谢谢。我整天都在想办法解决这个问题。只需 1 条小线就能发挥作用。
猜你喜欢
  • 1970-01-01
  • 2021-12-27
  • 2020-05-18
  • 2022-01-18
  • 1970-01-01
  • 2018-03-18
  • 2021-12-28
  • 2021-06-15
  • 2020-07-12
相关资源
最近更新 更多