2012-10-18 52 views
12

是一个新手到WCF.I有一个场景,我需要创建一个应用程序,运行24x7从邮箱拿起邮件,并创建少报告。我做了它使用winform和它的工作。但我有一个问题,应用程序托管在其上的服务器有一个自动注销策略,当服务器在一段时间内处于非活动状态时会关闭我的应用程序。我想我可以将它作为一个窗口服务来实现。情景,使用它的任何优势。我想到了WCF服务,因为它将为我学习曲线。请咨询。WCF服务vs窗口服务

更新:该作品根据timer.It坪特定的邮箱每隔5分钟就看到了新mail.If新邮件时发现它下载 其应用程序中的Excel创建PDF报告,并邮寄回一些电子邮件ID。

使用DLLS:OpenPOP和Itextsharp。

+0

你需要给我们介绍一下你的应用程序是为更多的细节,比其他“从邮箱拿起邮件并创建一些报告。” – Bernard

+6

如果您的客户端正在使用您的服务 – swiftgp

回答

19

Windows服务是您需要的。

WCF是一个通信库,除非您计划通过客户端与您的应用程序进行通信,您不需要它。

您的问题与激活有关,并且您的代码在后台保持活动状态是Windows服务所做的。

这并不难,这将帮助您开始。

http://www.codeproject.com/Articles/14353/Creating-a-Basic-Windows-Service-in-C

+3

好评IanBru。我只是输入相同的回复(+1)。这里是一个链接到MS的主题的其他信息:http://msdn.microsoft.com/en-us/library/d56de412%28v=vs.100%29.aspx – Randy

+0

谢谢你...这有助于.. + 1 – Karthik

0

如果你的应用程序做了你想要的,并且在服务器处于活动状态之前工作正常,那么你应该考虑通过设置服务器来解决这个问题,使其不进入非活动状态。换句话说,由于服务器本身不应该进入备用(非活动)模式,我的猜测是,您所说的策略只适用于不活动的用户用户 - 策略可能(并且应该) t)影响系统级用户。

因此,如果您要以系统用户(或网络用户)的身份运行应用程序,则问题应该消失。

根据你的解释,WCF是不是你的问题的解决方案有两个原因:

  1. WCF是当你有其他应用程序(客户端)有用消耗WCF服务) - 它没有按” t听起来像你需要在你的应用程序中的客户端/服务器服务
  2. 如果您要运行WCF服务作为当前应用程序运行在同一用户,您的问题仍然存在(即WCF服务将最终由于政策而不活跃)。
+0

这是客户端计算机,并且我们无权更改其服务器策略,那么您只需要WCF即可。我的意思是非活动模式是服务器关闭所有用户打开的应用程序在一段时间内没有活动。无论如何改变服务器策略来解决这个问题? – Karthik

+0

您需要告诉客户端以系统用户(或网络)身份运行服务。要查看我想要解释的内容,请转到您的服务,然后转到任何服务的属性。然后,转到“登录”选项卡。您会注意到您可以更改服务将运行的帐户。 – Jed

+0

服务?我没有创建一个服务。我做了一个Windows应用程序 – Karthik

2

WCF只在运行web服务时有用。只是一个正常的Windows服务应该在这里满足您的需求。只要机器启动,服务应该继续运行。

+0

将窗口服务运行,即使用户注销?我想它会。你的想法?感谢您的帮助 – Karthik

+0

@karthi:是的。 – Bernard

+0

感谢+1的帮助。 – Karthik