【发布时间】:2014-04-27 08:45:20
【问题描述】:
我的任务是重写一个用经典 asp 编写的旧网站,客户指定页面 URL 结构与旧网站相同(我知道我可以添加 301 重定向,但他们希望它看起来像现在一样)。
旧的“.asp”页面将不存在于服务器上,它根本不会运行经典的 asp,新站点是使用 MVC 5 构建的,它只需要旧的 URL。
我已经为特定的“网页”控制器创建了一个映射页面的路由,看起来它们具有如下的“.asp”文件扩展名,这在本地似乎可以正常工作 (IIS7)。
我的路线定义为:
routes.MapRoute(
"WebPagesASP",
"pages/{pagename}.asp",
new { controller = "WebPages", action = "Details", pagename = UrlParameter.Optional }
);
然而,一旦发布到 Azure 网站,我在尝试查看“asp”页面时收到以下错误。其他没有文件扩展名的路由可以正常工作,我也有一些到其他特定文件扩展名的路由可以按预期工作。
您无权查看此目录或页面。
我已尝试将以下内容添加到配置中以尝试捕获对 asp 文件的请求:
<system.webServer>
<handlers>
<add name="OldASPUrlRoutingHandler" type="System.Web.Routing.UrlRoutingHandler, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" path="*.asp" verb="GET"/>
</handlers>
<modules>
<remove name="UrlRoutingModule" />
<add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</modules>
</system.webServer>
同时设置<modules runAllManagedModulesForAllRequests="true"> 也不能解决问题。同样,这一切在本地都可以正常工作,但在发布到 Azure 网站时会失败。
该网站在 .Net 4.5.1 上使用 MVC 5.1.1 构建
【问题讨论】:
标签: asp.net-mvc asp.net-mvc-4 azure asp.net-mvc-routing azure-web-app-service