【问题标题】:ASP.Net MVC and Web Forms applications using same domain name, but code is kept in separate solutionsASP.Net MVC 和 Web 窗体应用程序使用相同的域名,但代码保存在不同的解决方案中
【发布时间】:2013-08-19 10:29:01
【问题描述】:

我有一个旧的网络表单应用程序 (.net 3.5),托管在 www.business-app.local

我想构建一个新的 ASP.NET MVC (.net 4.0/4.5) 应用程序,该应用程序也将具有域名 www.business-app.local

我知道我不能在 IIS 上拥有两个具有相同域和端口的应用程序。 我尝试在虚拟目录中添加 MVC 应用程序,但遇到了一堆 web.config 冲突。

我想将这两个应用程序分开,即仅将 Web 表单页面添加到我的 MVC 应用程序或将 MVC 添加到 Web 表单应用程序不是解决方案。

如何使用 IIS 8 实现这一点?

【问题讨论】:

    标签: asp.net-mvc iis architecture webforms hosting


    【解决方案1】:

    最简单的方法是创建新的 MVC 应用程序并将包含 Web 表单的文件夹添加到其中。 Queti 提到这样做是反过来的,但老实说,这是一个巨大的 PITA,因为你必须修改配置文件和引用。

    在 MVC 应用程序的特定文件夹中拥有 Web 表单页面后,只需在 global.asax.cs 中为它们添加排除项,如下所示:

    routes.IgnoreRoute("Webformsfolder/{*pathInfo}")
    

    另外,鉴于您(我认为)最终会逐步淘汰网络表单的内容,恕我直言,无论如何最好从头开始。祝你好运!

    【讨论】:

    • 感谢您的回复,但正如我在问题中所说,我希望将应用程序分开
    • 然后子域将是我采取的路线。能够共享 cookie 等。
    • 我想让它们在同一个域中
    【解决方案2】:

    您可以将 MVC 添加到当前应用程序。诀窍是确保路由不会与 Web 表单目录冲突,否则 WebForms 将是处理请求的那些。

    这是我将 Web 表单网站迁移到 MVC 时遵循的过程。

    【讨论】:

    • 感谢您的回复,但正如我在问题中所说,我希望将应用程序分开。
    【解决方案3】:

    我不得不妥协,将它们两个应用程序放在具有公共 cookie 的不同子域中。

    【讨论】:

      猜你喜欢
      • 2012-04-18
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      相关资源
      最近更新 更多