繁体   English   中英

与外部服务ASP.NET MVC同步

[英]Synchronization with external services ASP.NET MVC

我们希望将应用程序中的数据与外部服务的数据同步。 (例如会计软件。这种同步应该在每晚和客户想要的时候执行。

我知道长时间运行的线程不属于Web应用程序,并且此同步应该在外部Windows服务中执行。 但是这种方法的缺点是,部署/维护变得更加困难,因为应用程序也可以安装在客户的Web服务器上。

是否可以将此同步与仅使用我的解决方案的类库项目完全集成,该解决方案将在Application_Start事件中启动?

由于您的应用程序托管在IIS上,因此它由应用程序池进程维护。 如果为任务创建其他模块,它将在同一进程的上下文中运行。 为了执行所需的同步,您必须确保此过程在半夜仍在使用应用程序时仍在工作。 您可以使用Quartz.NET来安排同步任务。

但是,我认为更好的想法是从Windows服务执行同步。 服务应该与应用程序通信,例如使用数据库,它记录当前活动。 它使您可以通过连接到此类数据库来监视Web上的服务状态。 我知道服务会增加一些额外的管理工作,但它会更加可靠和安全。 您还可以从Web应用程序添加服务启动可能性(如果池进程用户具有对Windows服务的访问权限),以克服(或至少最小化)管理工作,并在发生故障后重新启动服务。

我已经编写了这样的功能,所以只是为了让您全面了解我对这种外部服务的Web监控的意思,请查看下面的屏幕。 它可以用ajax支持编写,以实现更高的响应性( 池化机制 ),这对最终用户来说很方便。

在此输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM