Asp.net mvc 4 IIS 6在传入Url具有扩展名时重定向

Asp.net mvc 4 IIS 6在传入Url具有扩展名时重定向,asp.net-mvc-4,redirect,iis-6,Asp.net Mvc 4,Redirect,Iis 6,我必须在MVC global.asax文件中写入重定向以适应IIS 6服务器。但是,当我使用扩展名(.html)访问旧URL时,服务器没有重定向。以下是我的重定向代码示例: if (url.Contains("contact.html")) { Response.Clear(); Response.Status = "301 Moved Permanently"; Response.StatusCode =

我必须在MVC global.asax文件中写入重定向以适应IIS 6服务器。但是,当我使用扩展名(.html)访问旧URL时,服务器没有重定向。以下是我的重定向代码示例:

if (url.Contains("contact.html"))
        {
            Response.Clear();
            Response.Status = "301 Moved Permanently";
            Response.StatusCode = (int)HttpStatusCode.MovedPermanently;
            Response.AddHeader("Location", "http://www.mysite.com/contact");
            Response.End();
        }

为什么这不起作用?

答案是因为需要将相关的http处理程序添加到IIS 6中。谢谢你,史蒂文

您是否更改/删除了IIS中的.html处理程序以允许ASP.NET拦截请求?我知道您在做什么,但看起来您使用的是螺丝刀而不是电钻。为什么不在
home
controller中创建一个路由重定向到名为
contact
的操作方法?这是来自旧版本网站的过时url。我已经有了常规联系页面的路线。当url包含.html时,我正在尝试重定向。我说得通吗?史蒂文,我没有访问服务器的权限。如果这是一个问题,那么我将不得不拥有服务器管理句柄。我认为,如果没有安装重写,那么可以很容易地使用HTTPHandlers完成。