我有一个非常有趣的问题。我有一个与asp.net网站。我需要的是独立的服务,应该始终在后台运行。例如,我可以在特定的日期做一些数据库操作。而且无需从某人寻求请求。独立。我应该遵循哪种方法?每个想法都会被愉快地接受。谢谢我该如何做一个始终在后台运行的ASP.NET后台服务?
回答
你应该实现另一个应用程序。您不需要任何请求,只需执行一些任务 - 然后使用桌面应用程序。如果您需要提供UI,那么使用WPF或Win Forms,如果只执行一些任务,那么只需使用控制台应用程序。要在特定时间运行它,您可以使用Windows任务计划程序。
您需要一个外部应用程序,可以是在您的PC /服务器上运行的服务/程序,也可以是托管服务提供商的网络。 对于想法,如果您希望您的网站提供调度等,Windows Azure提供了一个调度服务,可以在给定的时间间隔内调用Web地址(例如yourwebsite.com/runscheduler)。当这个网址被称为你的网站,然后可以采取行动,当然通过做一些业务逻辑。
感谢您的回答我想我会实现另一个应用程序 – ahmetsarias
我建议你看看Revalee开源项目。
Revalee是一种服务,让您安排网络回调到Web应用程序。在你的情况下,你会安排一个回调,在特定时间执行特定的数据库操作。 Revalee非常适用于离散事务操作的任务,如更新某些数据库值或发送自动电子邮件消息(请阅读:不长时间运行)。执行您的操作的代码将全部驻留在您的应用程序中。
要使用Revalee,您可以:
安装Revalee服务,Windows服务,您的服务器上。 Windows服务在源代码中可用(您可以自行编译)或在Revalee website提供的预编译版本中提供。
使用Revalee客户端库在Visual Studio项目。 (也有一个特定于MVC的版本。)客户端库可以在源代码中找到(也可以自己编译),也可以通过NuGet提供预编译版本。
当您的代码调用
ScheduleDbOperation()
方法(此示例假设您需要您的操作从现在起运行12小时)时,您将会注册将来的回调。private void ScheduleDbOperation() { DateTimeOffset callbackTime = DateTimeOffset.Now.AddHours(12.0); // The callback should be in 12 hours from now Uri callbackUrl = new Uri(string.Format("http://mywebapp.com/DbOperation.aspx")); // Register the callback request with the Revalee service RevaleeRegistrar.ScheduleCallback(callbackTime, callbackUrl); }
当Revalee调用你的应用程序恢复,你的应用程序将执行任何动作已经编写它做。您可以通过添加下面的方法调用(
DbOperation()
)到您的网页DbOperation.aspx
处理,点菜做到这一点:private void DbOperation() { // TODO Lookup the job information and execute the database operation // ... return; }
我希望这有助于。
注:上面的代码示例使用的ScheduleCallback()
同步的版本,Revalee客户端库也支持异步调用点菜:
RevaleeRegistrar.ScheduleCallbackAsync(callbackTime, callbackUrl);
在情况下,它不是上述清晰,Revalee服务不是外部第三方在线调度程序服务,而是在您自己的网络上完全控制您安装和的Windows服务。它驻留在您自己选择的服务器上并运行,很可能是您的Web服务器(但这不是必需的),它可以从您的ASP.NET应用程序接收回调注册请求。
声明:我是参与Revalee项目的开发人员之一。然而,要清楚的是,Revalee是免费的开源软件。源代码位于GitHub。
- 1. Android:始终在后台运行服务?
- 2. 如何保持后台服务始终在后台
- 3. 在后台运行服务
- 4. 服务在后台运行?
- 5. 创建一个始终运行的后台任务
- 6. 服务如何在后台运行 - Android
- 7. go run app.go始终在后台运行
- 8. 后台运行服务器
- 9. 运行后台服务ruby
- 10. 如何正确运行后台服务?
- 11. 如何继续在后台运行前台服务也在android
- 12. 在后台运行的android服务
- 13. iPhone:如何创建始终在后台运行的线程?
- 14. 替代后台传输服务在后台运行上传
- 15. 如何在后台运行ASP.NET页面?
- 16. GPS服务在后台运行(Android)
- 17. 在后台运行python服务器
- 18. Android服务未在后台运行?
- 19. 秒表与服务在后台运行
- 20. iOS - 在后台运行服务
- 21. 在后台运行VOIP(PJSIP)服务
- 22. iOS,ObjC:服务在后台运行
- 23. 在iOS中运行后台服务
- 24. 试图在后台运行服务
- 25. Android服务不会在后台运行
- 26. C#/ Mono在后台运行服务器
- 27. 在后台运行GPS服务
- 28. GPS服务在后台运行
- 29. 不断在后台运行服务
- 30. 永远在后台运行服务..? Android
可以使用的Global.asax与计时器 –
文件我做了一个项目的方式在那里我需要每1分钟后,调用一个方法 –
或者你可以将服务器上的 –