在IIS 8上设置MVC站点的默认路由

时间:2015-07-15 14:54:34

标签: asp.net-mvc asp.net-mvc-4 iis iis-8

我使用IIS8在我们的网络服务器上设置了一个网站。 URL是ABC.mycompany.com的链接。当我去ABC.mycompany.com时,我收到一个未找到的错误:

  应用程序中的服务器错误。

     

无法找到资源。

     

描述:HTTP 404.您正在查找的资源(或其中一个依赖项)可能已被删除,名称已更改或暂时不可用。请查看以下网址,确保拼写正确。

     

请求的网址:/

     

版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.17929

如果我转到ABC.mycompany.com/Home/InstrumentList,它会显示我想要开始的正确页面。如何从这条路线开始呢?

在Visual Studio 2013中,我将Home / InstrumentList设置为我的开始操作,并且工作正常。我看了几个引用默认和索引页面的例子,但我的应用程序没有这些。此外,还有对.aspx页面的引用,但我的应用程序中没有.aspx页面,只有.cshtml视图和.cs控制器。我也看过有关添加路由的事情,但是我不确定将它们放在global.asax.cs中(在ApplicationStart中?在它之外?在另一种方法中?只是一个人?)。我也不知道要为我的工作改变什么(将索引更改为InstrumentListing或不管它)。到目前为止,对我来说没有任何作用。

这是我尝试使用global.asax.cs尝试添加注册路由方法的尝试之一:

namespace GPC
{
    public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            WebApiConfig.Register(GlobalConfiguration.Configuration);
        }

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.MapRoute(
            "Default",
            "{controller}/{action}/{Filtre}",
            new { controller = "Home", action = "Index", Filtre = UrlParameter.Optional });
        }
    }
}

以下是我使用过的一些网站,但没有任何内容对我有用:

http://weblog.west-wind.com/posts/2013/Aug/15/IIS-Default-Documents-vs-ASPNET-MVC-Routes

cannot set Default route for MVC project

http://weblogs.asp.net/imranbaloch/editing-routes-in-mvc

如果有人能告诉我如何让ABC.mycompany.com/Home/InstrumentList显示用户何时访问ABC.mycompany.com,我将不胜感激。

1 个答案:

答案 0 :(得分:4)

我不确定,但您的RegisterRoutes方法应该在RouteConfig类中,默认情况下应该在MVC项目的App_Start foulder中。 这不是我在问题中看到的位于MvcApplication Global.asax.cs课程中的方法。

然后你应该只改变这样的RegisterRoutes方法来设置不同的默认控制器动作:

 public static void RegisterRoutes(RouteCollection routes)
 {
     routes.MapRoute(
     "Default",
     "{controller}/{action}/{Filtre}",
     new { controller = "Home", action = "InstrumentList", Filtre = UrlParameter.Optional });
 }