【问题标题】:How can I set the default page in IIS to a Controller?如何将 IIS 中的默认页面设置为控制器?
【发布时间】:2012-07-10 12:56:19
【问题描述】:

我们有一个 MVC 应用程序,可以从两个不同的网站访问。默认网站很好,但是如何将第二个网站设置为在特定控制器中启动?

我们的默认站点是 www.mysite.com,我们想为标题 www.subdomain.mysite.com 添加第二个 IIS 站点,以便将用户带到 www.subdomain.mysite.com/controller

但是如何告诉 IIS 使用特定的控制器操作 mycontroller 启动 www.mysubdomain.mysite.com

【问题讨论】:

    标签: asp.net-mvc model-view-controller iis iis-6 startup


    【解决方案1】:

    我会考虑配置 URL 重写,以便将对 www.mysubdomain.mysite.com 的请求视为对 www.mysubdomain.mysite.com/controller 的请求。

    你可以使用Ionics Isapi Rewrite Filter

    Ionic 的 Isapi 重写过滤器,又名 IIRF,是一款小巧、免费、易于使用的过滤器, URL 重写 ISAPI 过滤器。它结合了良好的价格(免费!)和良好的 特征。它快速而强大。它适用于 IIS 6.0 及更高版本。

    【讨论】:

    • 如果可能的话,我真的很想避免使用 URL 重写工具......托管该站​​点的 Web 服务器上也有许多其他站点,而且我们在 URL 重写方面遇到了问题过去的工具。
    【解决方案2】:

    我最终在 web.config 中为我的AppSettings 添加了一个值,并根据该值调整了应用程序的默认路由。

    public static void RegisterRoutes(RouteCollection routes)
    {
        var defaultController = ConfigurationManager.AppSettings["DefaultController"];
    
        if (string.IsNullOrEmpty(defaultController))
            defaultController = "Home";
    
        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = defaultController, action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
    
        ...
    }
    

    这允许我托管任意数量的 IIS 站点,每个站点都可以从应用程序中的不同控制器开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-30
      • 2015-12-05
      • 1970-01-01
      • 2013-08-13
      • 1970-01-01
      • 2014-05-04
      • 2022-06-15
      • 1970-01-01
      相关资源
      最近更新 更多