2013-08-21 160 views
1

我知道这听起来令人困惑..所以我试图尽可能简短。主Web应用程序中的IIS 7 Web应用程序

我有一个在Windows Server 2008 R2上的ASP.NET 4的经典应用程序池的主网络;在这个网站内有一个包含本网站所有管理功能的子文件夹;主开发人员决定将此子文件夹转换为另一个ASP.NET 4经典应用程序池。

所以基本上我有转换到应用程序和子文件夹也被转换成一个应用程序的主文件夹。

到目前为止,我们并没有任何问题,但是我不相信这个解决方案是最佳的一个。

我想知道你的想法。

+2

_“我不相信这个解决方案是最优的解决方案。” - 然后告诉你的主要开发者。解释您对当前设置有什么反驳,以及您希望如何配置它。 – CodeCaster

+0

这些网站或网络应用程序?含义是否有一个bin文件夹?他们在视觉工作室中分离解决方案吗? – nerdybeardo

回答

1

有很多理由应用到各自自己的应用程序池。当你有一个单独的应用程序池时,一个新的W3WP流程即将启动,这意味着在某些情况下它可以提供更好的性能。新进程也会自行分配内存,因此,例如覆盖缓存条目不会干扰主站点上的缓存条目(这也可能很糟糕)。最后,也是最重要的一点,如果管理员的应用程序池崩溃,它不会影响客户的主要应用程序池。在很多情况下,应用程序管理部分是最有可能失败的,因为它们包含非常多的功能(但这不适用于所有情况)。

以上所有的那些好东西也会产生负面影响。例如,您可能希望强制缓存项从管理应用程序到站点的前端部分到期,现在这会变得更加困难。此外,这些应用程序应该在Visual Studio中作为两个独立的应用程序进行拆分,否则部署将变得古怪(两者都必须使用同一个bin文件夹中的项目)。如果它是一个子目录(就像你刚才提到的那样),那么你需要关掉web.config继承,否则你会遇到各种各样的问题。看看如何做到这一点

Avoid web.config inheritance in child web application using inheritInChildApplications

我个人认为在某些情况下,把应用池的管理部分,可以有利依赖于应用本身,你将不得不对这个问题看看你自己的应用程序并做出决定。

1

我不会在亲身体验它之后推荐这种方法。

不久前,我开发了将需要添加新的HTTP模块和相应的web.config条目的大型Web应用程序的一些新功能。在现场发布后不久,我们收到一个电话,说明我们不保留的应用程序,但我不知道该应用程序是否已损坏。

的原因是我的web.config设置需要这里面的子应用程序没有新的HttpModule,因此坠毁,故障排除和减轻这个问题花了时间和精力。

下一次我想升级我们从.NET 3.5应用到.NET 4,我们不得不以确认它们的应用程序将是确定后,我们提升我们的应用程序,而这又需要花费时间和精力。

长话短说,它需要几分钟,如果不秒,创建一个新的应用程序池和安装一个应用程序,它需要过多的时间和精力来协调这些变化的一个架构,根本是没有必要或有益的。