单独部署asp.net mvc项目的不同领域

时间:2012-09-04 10:19:39

标签: asp.net-mvc deployment web-deployment asp.net-mvc-areas area

我有两个asp.net mvc项目。此外,其中一个使用ASPX视图引擎和其他Razor。 第一个项目是所有用户共同的东西,其他一些用户。他们每个用户共享一个会话。

我将加入这些项目并为每个项目使用areas。现在我想知道可能符合我的要求吗?

我有两个问题:

  1. 是否可以将两个具有不同视图引擎的项目放在一个项目中并将它们分开?
  2. 是否可以在asp.net mvc中部署一个区域并保留其他区域而不进行更改?
  3. PS:我觉得第一个问题的答案不是。但我仍然感兴趣第二(只是想知道它是否可能以及以何种方式)。

2 个答案:

答案 0 :(得分:4)

在这里您可以找到如何在同一个项目中使用多个视图引擎的博客文章: http://weblogs.asp.net/gunnarpeipman/archive/2010/07/29/asp-net-mvc-3-using-multiple-view-engines-in-same-project.aspx

我想这也可以用于区域......

提出第二个问题。有一个名为mef的框架。使用Managed Extensibility Framework(Mef),您可以为您的Web页面构建一个插件结构,其中每个插件都可以独立维护。但你必须做一些额外的工作。

请参阅这些可能指向正确方向的链接:

http://blog.maartenballiauw.be/post/2009/04/21/ASPNET-MVC-and-the-Managed-Extensibility-Framework-%28MEF%29.aspx

http://www.fidelitydesign.net/?p=88

我希望我确实理解你的问题是正确的,可以帮助...

答案 1 :(得分:1)

1 - 是

是的,我在一个同时运行Spark和Razor的项目上工作。

你不能把2个混在一起

  • 在Razor页面中渲染部分Spark不起作用(至少不行)。

2 - 否

您可以将更改部署到视图,而不会影响网站的其余部分。

但是,触摸Bin文件夹或.config文件将重置AppDomain 。此外,对共享代码的更改显然会影响这两个区域。

重置AppDomain将清除所有SessionState ,除非您使用的是进程外会话状态提供程序(如StateServer,SQL Server,MemCache等...)

你为什么要这样做?

替代解决方案:

  1. 在IIS中创建2个网站,您可以将它们绑定到单独的IP地址或主机标题
  2. 创建2个具有2个独立站点的虚拟目录