【问题标题】:WCF service library which hosts in Windows service for Long Running taskWCF 服务库,它在 Windows 服务中托管以执行长时间运行的任务
【发布时间】:2014-08-23 04:33:03
【问题描述】:

对于长时间运行的任务,依赖于 Windows 服务中托管的 WCF 服务库是一种好方法吗?

这些长时间运行的任务是从网站启动的。多个用户可以登录网站并可以启动任务。但是会启动这么多长时间运行的任务实例。这是机器的开销吗?这会导致任何性能问题吗?

谢谢。

【问题讨论】:

  • 除非您在单独的线程上发送请求,否则您很可能会在等待响应时占用客户端应用程序。我建议您重新审视您的设计理念并查看不同的选项 - 可能是发布订阅模型,其中客户端将启动长时间运行的任务,然后执行其余职责,并且该服务可以在任务完成时通知客户端.假设客户甚至关心。
  • 客户端将启动长时间运行的任务,然后执行其余的职责,当任务完成时服务可以通知客户端......是的,这就是我需要的。但是用上述方法可以吗?
  • 是的。 Google WCF 发布订阅。
  • 即使用户从网站注销,我是否可以使用 Windows 服务中托管的这种 WCF 方法,但后台工作仍将继续?
  • 如果客户端断开连接应该不会影响 WCF 服务启动的操作。完成后客户端不会收到通知,但不会导致操作在服务器端中止。

标签: wcf windows-services long-running-processes


【解决方案1】:

您的服务需要能够处理潜在用户的数量 - 您的 InstanceContextMode 是 WCF 服务将处理什么和并发的最大问题。您是 Singleton 还是 PerSession、PerCall ,是您的 Concurrency - 应该是 Multiple。这些因素会影响性能 - 请记住,单例最多可以处理 500 个并发连接。

会话实例和并发: https://msdn.microsoft.com/en-us/library/ms731193(v=vs.110).aspx

您还可以在您的网络上使用 ServiceHostFactory 无文件激活。

尝试此链接以获取更多信息 - 这应该对您有所帮助。 https://sankarsan.wordpress.com/2010/06/06/fileless-activation-of-wcf-service-in-net-4-0/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-13
    相关资源
    最近更新 更多