Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于WCF的Windows服务设计_C#_Wcf_Soap - Fatal编程技术网

C# 基于WCF的Windows服务设计

C# 基于WCF的Windows服务设计,c#,wcf,soap,C#,Wcf,Soap,目前,我正在设计一个Windows服务应用程序,从Oracle数据库获取报告,将其聚合为消息,并将其发送到外部WCF SOAP服务。 如果您能提供一些有关Windows服务的设计建议,我将不胜感激 Windows服务是否应该使用专用的WAS/自托管WCF服务(net.pipe/net.tcp)来提供数据以实现更好的分离/重用 因此,我将添加一个提供数据的WCF服务(net.pipe)(例如GetReport方法)。 Windows服务应用程序将调用GetReport并调用远程SOAP服务来转发聚

目前,我正在设计一个Windows服务应用程序,从Oracle数据库获取报告,将其聚合为消息,并将其发送到外部WCF SOAP服务。 如果您能提供一些有关Windows服务的设计建议,我将不胜感激

Windows服务是否应该使用专用的WAS/自托管WCF服务(net.pipe/net.tcp)来提供数据以实现更好的分离/重用

因此,我将添加一个提供数据的WCF服务(net.pipe)(例如GetReport方法)。
Windows服务应用程序将调用GetReport并调用远程SOAP服务来转发聚合消息。远程服务及其客户端代码可能会更改。它可能适用于不同的客户项目。

如果我理解正确,您的windows服务将定期从数据库获取一些数据,并将这些数据上载到远程web服务

这意味着您的windows服务在WCF通信方面是一个客户端,您不需要在其中实现任何WCF服务器代码


您只需连接到remove web服务并上载数据,例如,使用为此删除服务生成的客户端代理。

我认为不需要添加另一个提供数据的WCF服务,而不是直接查询数据库,只要您不需要另一个应用程序使用相同的WCF服务。在此之前,我不会添加该服务,原因如下:

  • 另一个WCF服务增加了部署的复杂性,使安装和配置变得更加困难
  • 与新WCF服务的连接是另一个可能中断的点
  • 如果处理大量数据,直接从数据库中获取数据将比通过服务协议传输数据效率更高。据我所知,您是在windows服务中聚合数据,而不是在数据库中聚合数据。因此,您还必须将聚合代码移动到新服务
如前所述,一旦您有了新服务的另一个潜在客户,此建议就会改变。为了做好准备,您当然应该在windows服务中选择一种能够很好地分离关注点的设计,这是以后移动某些组件的良好起点