.asp处理程序映射.aspx页面

时间:2012-07-23 11:45:36

标签: asp.net iis-7 asp-classic iis-7.5 umbraco

我目前正在开发Umbraco 4.7。

我的客户端需要将带有.asp扩展名的经典ASP页面重定向到新页面。我安装了以下软件包:

管理网址重定向 http://our.umbraco.org/projects/backoffice-extensions/manage-url-redirects

这个软件包正是我需要的.aspx页面以及那些没有扩展名的页面。

然而,当谈到.asp时,这不起作用。我的第一个想法是,这是因为.asp未设置为映射到IIS7中处理程序映射配置中的.aspx页面。

为了解决这个问题,我添加了一个新的处理程序映射到IIS。

  1. 添加脚本管理器
  2. 请求路径 - * .asp
  3. 可执行文件 - C:\ windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll
  4. 名称 - ClassicAspToNet
  5. 在添加此处理程序映射之前,我收到了IIS 404错误页面。现在我收到服务器异常:

    无法执行网址。

    示例: * REMOVED LINK HERE *

    在帮助我确定是否可以提供扩展名为.asp的.aspx页面时,我们非常感谢您的帮助,如果有,我该怎么做?

    提前致谢,

    大卫。

3 个答案:

答案 0 :(得分:0)

我遇到了类似于PHP到Umbraco迁移的问题。我的解决方案是添加一个无扩展处理程序(通配符映射),然后使用Umbraco中的UrlRewriting剥离.php并将其替换为.aspx。

这是我使用的重写规则:

<add name="phptoaspx"
     virtualUrl="^~/(.*).php"
     rewriteUrlParameter="ExcludeFromClientQueryString"
     destinationUrl="/$1.aspx"
     ignoreCase="true" />  

也许在你的情况下你只需要重写?您可能需要从IIS处理程序映射中删除.asp。

答案 1 :(得分:0)

您可以尝试我写的关于如何在经典模式和集成模式下将其他扩展重新映射到IIS的博客条目: http://blogs.msdn.com/b/carlosag/archive/2008/07/04/mappingfileextensionforaspxpagesiniis70.aspx

答案 2 :(得分:0)

如果有帮助,您可以使用301 Moved Permanently功能。

在您的经典asp网站中,您有global.asa,其中包含On Application start等事件,您可以重定向到相应的aspx文件。

e.g

Sub Application_OnStart
    Declare a variable and Get page name from request and redirect accordingly

   Response.Status="301 Moved Permanently"
   Response.AddHeader "Location","http://www.example.com/" + VariableNameThatHoldsPageName
   Response.End

End Sub

希望它有所帮助.....