1

我的情况是我有一个“服务应用程序”,它是一个控制台应用程序,由代理任务在不同时间启动。

现在我的要求发生了一些变化,我认为只能由任务调度程序运行的内容需要由运行在 Intranet 上的客户端应用程序调用。

一个问题是该服务使用 .NET 4.0(而不是客户端配置文件),我不想将其强加到安装程序中,即使我这样做了,我也不希望执行不同版本的机会。因此,将代码推送到库中似乎是错误的。

另一个问题是,目前我控制代理任务的调度,所以我从未尝试设计这样的功能,即多个服务实例将同时执行一个命令。没有逻辑特别依赖于这种情况,但我对假设它会全部工作感觉不太好 - 它只是不是为了那样工作而设计的。

基本上,我知道这里需要做什么。我要问的是实现它的现代有效方法是什么。我应该看WCF吗?我忽略了一种非常简单的方法吗?

这是一张我在想什么的图片,希望能让它更清楚。

在此处输入图像描述

4

1 回答 1

2

WCF 应该是一个正确的选择,它简单而强大。

客户端配置文件支持它 - http://msdn.microsoft.com/en-us/library/cc716765.aspx

WCF 中使用行为控制实例和服务的数量。下面的配置应该保证同时只运行一种方法。maxConcurrentCalls="1"如果可以同时运行多个方法但只应执行一个实例,则可以使用参数(删除)。

 <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceThrottling 
            maxConcurrentCalls="1" 
            maxConcurrentSessions="1" 
            maxConcurrentInstances="1"
          />
        </behavior>
      </serviceBehaviors>
</behaviors>
于 2012-06-06T03:31:45.680 回答