C# 从WCF服务运行控制台应用程序-在何处托管?
目前正在为应用服务器开发.NET解决方案。我使用的是运行在WindowsServer2008R2和IIS7.5上的.NET4.0 我的要求是:C# 从WCF服务运行控制台应用程序-在何处托管?,c#,.net,wcf,iis-7.5,quartz.net,C#,.net,Wcf,Iis 7.5,Quartz.net,目前正在为应用服务器开发.NET解决方案。我使用的是运行在WindowsServer2008R2和IIS7.5上的.NET4.0 我的要求是: 应用程序服务器可以按计划同时运行多个控制台应用程序-Quartz.net看起来是解决此问题的一个非常好的解决方案-到目前为止,它对我来说运行良好 应用服务器还将承载一个web应用程序,该应用程序将报告作业(作业运行的时间、所做的工作、所花的时间等) 我希望能够重新启动运行我的作业的“服务”,并从web界面触发临时作业 运行我的作业的服务需要一直运行 一
- 应用程序服务器可以按计划同时运行多个控制台应用程序-Quartz.net看起来是解决此问题的一个非常好的解决方案-到目前为止,它对我来说运行良好
- 应用服务器还将承载一个web应用程序,该应用程序将报告作业(作业运行的时间、所做的工作、所花的时间等)
- 我希望能够重新启动运行我的作业的“服务”,并从web界面触发临时作业
- 运行我的作业的服务需要一直运行
- 一旦这是活的,我将无法直接访问计算机重新启动Windows服务,但我可以潜在地设置IIS,以便能够为我这样做
WCF服务应该是启动和安排作业的服务吗?我认为您可能对其进行了过度设计 问题是:你有一个网站需要临时启动工作。其他作业将按固定计划运行。该网站将报告所有/任何这些工作 对于运行计划作业,使用Quartz的Windows服务确实是固定计划部分的理想解决方案。但是,要报告这些工作,服务部门必须收集数据并提供。可以将服务设置为在出现故障时重新启动,因此您可以保证它将始终运行(如果它出现故障,则在重新启动时会有一到两分钟的时间除外,为什么要这样做?)。但是,任何历史记录都将丢失,除非服务将其存储在某个位置,并且在重新启动后可以检索它 网站获取历史记录的更简单的解决方案是,服务将其数据写入数据库,这样就不用担心重新启动:所有历史记录都已保存,网站可以随时读取数据 类似地,如果网站直接与服务对话(作为WCF服务或其他方式)那么,如果服务当前未运行会发生什么情况?在重新启动完成之前,请求会失败。这会让用户感到沮丧。或者,网站会将请求放入数据库中。服务会监视数据库中的请求,并在看到新请求时适当地启动作业。如果在服务ice没有运行,当它重新启动时,它将在DB中看到请求并执行它们 因此,我认为使用WCF服务是过分的,并且实际上引入了一些问题:历史的持久性,以及如何处理服务关闭时发出的请求。如果按照我描述的方式进行,这些问题不会出现
干杯-谢谢你的回复,我想你是对的。不过我有点失望,因为我真的很期待设计出一款真正酷的东西……现在它功能齐全而且平淡无奇