使用IIS Express在localhost中启动App-C#

时间:2018-10-11 13:28:23

标签: c# asp.net-mvc iis-express

我有问题。我想从Visual Studio(C#)启动我的App的新实例。

它从http://localhost:54619/开始。问题在于,启动时,会在类Global.asax.cs的Application_BeginRequest()方法中创建一个循环,而该循环永远不会消失。我尝试使用Response.RedirectToRoute("Default")重定向它,但是它不起作用。我无法摆脱那种方法。

    protected void Application_BeginRequest()
    {
    Response.Redirect("~/Principal");
    }

我正在使用ASP.NET MVC,IIS Express。

1 个答案:

答案 0 :(得分:1)

您的问题是,Application_BeginRequest()的名称始终在您的应用程序收到请求时执行。然后,在该方法中,您响应客户端,应改为转到~/Principal路径。当客户端收到此响应时,它将创建一个新请求,最终将获得相同的响应。您想将请求重定向到默认控制器。您应该通过注册到该控制器的路由来做到这一点。 ASP.NET的MVC模板为此提供了一个示例:

  1. 创建一个注册所需路线的函数

    public class RouteConfig
        {
            public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }
        }
    
  2. 调用Global.asax.cs中的函数

     public class MvcApplication : System.Web.HttpApplication
        {
            protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
        }
    

现在,如果没有其他路由适合该请求,则您的应用程序应将用户重定向到名为“ Home”的控制器,并重定向至其操作“ Index”。