【发布时间】: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