【问题标题】:Resources distribution to IIS processes and standard windows applications资源分配到 IIS 进程和标准 Windows 应用程序
【发布时间】:2009-05-29 12:40:00
【问题描述】:

我们的局域网上有一台配置非常好的服务器机器

  • 4 GB 内存
  • 1 TB 硬盘
  • 四核处理器

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

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

我的问题是资源如何在这些应用程序之间分配。我知道 Windows 应用程序可以利用大量资源(100% CPU、100% RAM 等),但我不确定 asp.net 进程对这些资源有多少访问权限。它对他们来说是有限的还是像 Windows 应用程序一样?另外,如果有任何限制,那么我们该如何控制呢。

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

【问题讨论】:

    标签: .net asp.net iis resources


    【解决方案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 服务为进程或应用程序托管和生命周期管理提供了不同的替代方案。


    这只是一般信息。要从该社区获得更具体和具体的指导,您必须提出比“我如何进行繁重处理?”更具体的要求。

    【讨论】:

      猜你喜欢
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 2017-11-16
      • 2016-03-09
      • 2011-02-02
      • 2013-02-14
      • 2012-07-03
      • 1970-01-01
      相关资源
      最近更新 更多