【问题标题】:Running a .NET Program as a Background Service将 .NET 程序作为后台服务运行
【发布时间】:2010-11-23 01:42:23
【问题描述】:

这是我要应用的简单场景;

  1. 有一个 .NET 应用程序(控制台或窗口)appA,此代码每 30 秒更新一次项目中的一个大型全局变量 (+50MB)。
  2. 我有另一个应用程序 appB,它是一个 .NET Web 应用程序,我希望能够随时从 appB 访问 appA 中全局变量的更新值。

您对此有何建议?

【问题讨论】:

  • 这两个总是要在同一台电脑上运行吗?
  • 您需要确定一些技术(数据库、Web 服务、文件等)作为集成层。那么你的问题就可以得到简单的回答了。
  • @James 是的,它们将在同一台计算机上运行。 @BozoJoe 我可以使用这些技术中的任何一种,但写入数据库或文件似乎是一种不好的方式,因为我的变量会非常大。

标签: .net asp.net backgroundworker


【解决方案1】:

我最初的想法是让应用程序 A 作为 windows service 运行,并将其写入 Web 应用程序的某个共享位置。

【讨论】:

  • 我看到 Jason,我也想过这样的事情,但变量会很大(比如说 50MB+),将它存储在文件中并从 Web 应用程序加载它仍然可行吗?我不能创建一个一直在运行的 Windows 服务和一个用于该特定 Windows 服务的 Web 服务,该服务将访问该变量并从 Web 应用程序的简单 REST 调用中返回它吗?
【解决方案2】:

平面文件、数据库、远程处理或套接字是您可以做到的一些方法。答案会因某些因素而异,例如数据是否敏感、您计划将应用分发到多少台计算机以及是否可能存在多个 appA 实例。

【讨论】:

  • 你好 DaMartyr,这个变量会很大(50MB+)并且将它写入文件或数据库似乎不太可行。这个变量会每 30 秒改变一次,将它存储在 db 或文件中是否仍然是一个好主意?
【解决方案3】:

如果两者在同一台机器上运行,您可以使用注册表或将其存储在文件或数据库中。

如果它可以在不同的机器上运行数据库可能是最好的选择。

【讨论】:

    猜你喜欢
    • 2013-05-27
    • 2019-01-03
    • 2018-04-18
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多