2009-05-29 68 views
0

我们有非常好的配置的服务器机器我们的局域网上资源分配到IIS进程和标准Windows应用程序

  • 4 GB的RAM
  • 1 TB HDD
  • 四核处理器

我们可以有2种类型的应用程序运行在服务器上

  1. 在IIS监督下运行的ASP.NET Web应用程序
  2. 标准Windows应用程序以管理帐户运行。

我的问题是资源如何将这些应用程序之间进行分配。我知道Windows应用程序可以利用高资源(100%CPU,100%RAM等),但我不确定asp.net进程对这些资源有多少访问权限。它是有限的,或像Windows应用程序相同?此外,如果有任何限制,那么我们如何控制这一点。

我问这个问题的原因是来自我们的web应用程序,我们想要执行一些繁重的操作。什么是最好的方式来做到这一点。我应该去一个Windows服务,MSMQ,还是可以使用asp.net帐户?

回答

1

要回答你的第一个问题,在Windows Server 2003或2008中,有一个叫做Windows System Resource Manager的东西,又名WSRM,它可以让你将系统资源分配给应用程序或进程。这与服务器操作系统的企业版一起提供。只需如何分配资源是一种黑色艺术;你将不得不尝试一下,在各种条件下进行彻底的测试。

对于第二个问题 - 处理“沉重的操作”的最佳方式 - 我想简单的答案有它取决于。有许多不同的方法,并且它们适合不同的要求。

MSMQ可以帮助缓冲工作请求以启用非高峰时段的处理。 WSRM可以实现系统资源的分配和配给。这两个可以互补,或者你可以将它们视为替代品。


至于ASP.NET和Windows服务:ASP.NET显然将成为基于浏览器的请求主要是有用的,但也可能来自其他系统的REST风格的请求(或类似)。 ASP.NET应用程序将在w3wp.exe工作进程下运行,该进程由IIS保存。您可以获得所有IIS进程管理的好处,例如定期重启,过时进程的自动重启,基于请求的激活等。

Windows服务是一种创建在Windows Server上运行的自定义应用程序的方法,是基于请求的。您的场景的一个示例可能是Windows服务按计划启动,比如说每晚晚上10点,并且运行在MSMQ中的所有排队交易。当队列为空或凌晨4点,以先到者为准,Windows服务关闭。 Windows服务不享受任何IIS进程管理的好处。

底线,ASP.NET和Windows服务提供程序或应用程序托管和生命周期管理的不同选择。


这些都只是一般性的信息。为了从这个社区获得更具体和具体的指导,你将不得不提出更具体的要求,而不是“我该如何处理重加工?”

相关问题