【问题标题】:Hosting a continuosly running Console application托管持续运行的控制台应用程序
【发布时间】:2015-03-27 04:32:25
【问题描述】:

Azure VM, Cloud service or Web job?

我有一个持续运行的可配置控制台应用程序。目前它在虚拟机上运行并消耗大量内存(它基本上是在进行数据挖掘)。

当前的要求是该应用程序的多个实例具有不同的配置集,这些配置可以由特定用户更改。

那么我应该在哪里托管这个应用程序,以便可以使用一些提供访问管理(如 Sharepoint)的前端来修改配置,能够在不登录 VM 的情况下停止/重新启动(如 WCF 服务)?

我愿意接受任何建议/想法。谢谢

【问题讨论】:

    标签: wcf azure sharepoint azure-web-roles azure-webjobs


    【解决方案1】:

    我认为这个问题没有任何已售出的答案,因为存在偏好变量,但对于它的价值,如果由我决定,我会针对每个特定用户集的单个 azure VM 部署它。这样,如果服务器资源由于配置更改而增加,则用户组将其隔离到该组,并且使用 azure 将自动扩展以满足资源需求。然后只需构建一个小的 .net Web 应用程序来允许用户进行身份验证和更改配置设置。

    【讨论】:

    • 即使我将每个实例部署在不同的虚拟机上,我应该如何只允许特定用户使用某种前端来更改配置?另一个问题是我应该如何允许用户按需重新启动它,然后应用程序生成的日志我应该如何向最终用户显示?任何时候都不会有人直接登录虚拟机
    • 您需要某种允许用户验证和修改设置的应用程序。此应用程序将具有多个角色和权限级别。它将被浏览器访问。
    • 我已经开始实施这个设计了。长时间运行的应用程序将转换为 Web 作业。我在 sharepoint 2013 中设计了可以处理身份验证的 UI。我正在使用 Azure 存储来存储配置并从共享点读取表以创建和更新它。仍处于开发阶段。
    【解决方案2】:

    您可以为您的服务公开一个“管理员”端点(显然您需要在这里进行身份验证!): 1.可以返回当前配置 2.接受新配置 3. 重启服务(如果需要)。停止服务会更难,因为这留下了如何重新启动它的问题。

    然后您需要编写自己的(或使用 3 方(如 sharepoint 或 CMS))应用程序来处理您的用户并在后台使用您的“管理员”端点。

    编辑:托管部分:如果我对您的理解正确,您的应用程序现在只是一个控制台应用程序,您不知道如何托管它?嗯,这个问题有很多答案。如果您有运营部门,请与他们交谈,如果您自己玩,看看什么最适合您和您的环境!

    我的提示:选择 http/https 协议/接口 - 只是因为那里有很多网络主机,您可以轻松找到该协议的工具。如果您在 .NET 平台上,请查看 Web.APIOWASP

    【讨论】:

    • 我应该在哪里托管它?您的建议是将我的控制台应用程序转换为 WCF 服务?
    • 我不知道你的应用。你用“wcf”标记它。我以为您将服务托管在控制台应用程序中。将其托管在服务器上。
    【解决方案3】:

    Azure 现在有 Machine learning 来处理数据挖掘。 你应该检查它是否适合你。

    否则你可以使用Webjob:

    【讨论】:

      猜你喜欢
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 2010-11-17
      • 2014-05-25
      • 2017-07-03
      • 1970-01-01
      • 2013-06-30
      • 2011-01-22
      相关资源
      最近更新 更多