当前位置:  开发笔记 > 编程语言 > 正文

在IIS6上将所有请求重定向到ASP.NET MVC

如何解决《在IIS6上将所有请求重定向到ASP.NETMVC》经验,为你挑选了1个好方法。

我可能忽略了一些非常简单的东西,但我试图将所有错误的URL重定向到根据条件过滤URL的操作,然后301重定向到合适的页面或发出404页面.

为此,我在路由表的末尾有这样的路由:

routes.MapRoute("Error", "{*url}", new { controller = "Main", action = "Error" }); 

这样的动作:

public ActionResult Error(string url)
{
        if (/* Conditions are met... */)
        {
            Response.Status = "301 Moved Permanently";
            Response.AddHeader("Location", /* Destination URL */);
            Response.End();
        }

        Response.StatusCode = 404;
        return View(/* 404 page... */));
}

这在当地非常有效.

但是,当部署到IIS6时,不包含.mvc(例如oldfile.php)的URL永远不会发送到ASP.NET进程进行路由.

有一个简单的解决方案/我忽略了什么吗?

编辑:这与此问题有关,但在IIS6下,没有.mvc的URL不会被发送用于ASP.NET MVC处理.



1> SaaS Develop..:

部署到服务器时,很可能不会调用ASP.Net.

我会在IIS中设置通配符映射,因此您的请求将使用ASP.Net来处理请求.

打开IIS管理器,右键单击您的应用程序,转到"属性",然后单击"主目录"选项卡,再单击"配置".在通配符应用程序映射下,单击"插入"(不是"添加",这在上面令人困惑),然后为"可执行文件"输入C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,并取消选中"验证文件是否存在".

有关更多信息,请访问帮助我解决此问题的来源:http: //blog.codeville.net/2008/07/04/options-for-deploying-aspnet-mvc-to-iis-6/

推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有