ASP.MVC 3可以在站点根目录中运行并允许其他ASP.Net应用程序在子文件夹中运行吗?

时间:2011-04-27 16:52:01

标签: asp.net-mvc iis asp.net-mvc-3

我是否可以在我的站点root(一个提供MOST站点内容的简单CMS)中运行ASP.MVC 3应用程序,并使其与其他ASP.Net应用程序共存(2个Web窗体应用程序和1个MVC应用程序)在子文件夹中运行以提供更专业的功能?

示例:

www.mycompany.com
/             // ASP.MVC 3 App goes here to handle 90% of our page content.
/store/       // Older web forms app to handle our online store.
/survey/      // Older web forms app to provide survey forms.
/locations/   // An ASP.MVC 3 app to render a map with site locations.

如果有必要,我不介意将“位置”MVC应用程序与CMS集成,但如果它们可以分开,则可以简化长期维护。根应用程序是否需要了解其他应用程序? (包括其他项目作为子项目进入VS.2010的主要MVC项目?)

至于“商店”和“调查”Web表单应用程序。他们正在运行.Net 3.5,但如果需要,我们可以将它们重新编译为4.0。 “商店”“调查”和“位置”文件夹是否需要是用IIS映射的虚拟文件夹?

希望这个示例足够简化,以确定是否有可能(以及如何)将应用程序与站点根目录中运行的ASP.MVC 3集成在一起。我处于这样一种情况:单独的应用程序必须共享一个域并假装是一个有凝聚力的站点。 (它们将共享相同的HTML模板)

2 个答案:

答案 0 :(得分:4)

只需将其他应用程序标记为IIS中的应用程序即可。

答案 1 :(得分:1)

不是直接的 - 你将整个星期都在讨论令人讨厌的IIS战斗。你最终可能会到达那里,但它不会很漂亮。这里有两种可能的方法:

a)将整个事物置于反向代理之后,该代理将流量传递到适当的服务器(或虚拟服务器)。不足之处是你可能需要做一些小小的尝试来说服IIS,你的商店是http://www.example.com/store而不是http://localhost:666/store,但它是可行的。

b)尝试将旧的webforms应用程序合并到您的MVC cms应用程序中。真的取决于很多细节,但可以像设置要忽略的路径一样简单,并在适当的时候调整配置。