【发布时间】:2014-05-25 02:52:33
【问题描述】:
目前正在为应用服务器开发 .NET 解决方案。我正在使用在带有 IIS 7.5 的 Windows Server 2008 R2 上运行的 .NET 4.0。
我的要求是:
应用程序服务器可以按计划一次运行多个控制台应用程序 - Quartz.net 看起来是解决这个问题的一个非常好的解决方案 - 到目前为止对我来说效果很好
应用程序服务器还将托管一个 Web 应用程序,该应用程序将报告作业(它们运行的时间、它们做了什么、它们花费了多长时间等)
我希望能够重新启动正在运行我的作业的“服务”并从 Web 界面触发临时作业。
运行我的作业的服务需要一直运行
一旦启用,我将无法直接访问计算机以重新启动 Windows 服务,但我可能会设置 IIS 以便能够为我执行此操作。
WCF 服务对我来说看起来很有希望 - 但我不确定在哪里托管它。我当前的项目使用 WCF 服务来使用 Quartz.net 插件运行控制台应用程序。运行什么以及何时运行的配置存储在 oracle 数据库中,我的 WCF 服务直接连接到数据库以检索此信息(不确定这是否是 WCF 的预期用途)。
如果我在 IIS / WAS 中托管 WCF 服务,那么运行控制台应用程序可能是我所读到的安全问题。我至少可以使用 appFabric 让 WCF 服务一直运行。或者,我可以将它托管在 Windows 服务中,并允许我的 Web 应用程序使用 WCF 服务来报告作业。我担心使用 Windows 服务,因为我无法直接维护这台机器,如果它坏了,我就有麻烦了。我真的很希望能够从 Web 应用程序进行维护。考虑到它可以从 IIS 托管,Windows 服务也感觉有点不必要。
所以我的问题是 - WCF 服务是解决这个问题的正确方法还是有人能想到更好的方法?
如果 WCF 服务是一种好方法 - 我应该在哪里托管它,以便我可以通过 Web 界面执行维护,因为我无法直接访问机器本身?
WCF 服务应该是启动和调度作业的服务吗?
【问题讨论】:
标签: c# .net wcf iis-7.5 quartz.net