我想知道当您的web项目启动时(我正在使用MVC4 RC和C#)是否可以循环一些代码。例如,你有一个实体工厂。这家工厂每小时创建一把椅子。因此,该项目应该在服务器上运行时执行此操作。无论用户是否在网站上。这可能吗?你会如何做到这一点?在项目运行时在MVC项目中重复代码
回答
这可能不是这样做的正确方法,但您可以创建一个EXE来处理您的任务,并让它在服务器上运行。
是的有一种方法可以做到这一点:将某些东西放入具有特定生命周期的缓存中,并使用OnCacheRemovedCallback进行注册。在此回调中,执行您想要执行的操作并将新项目插入缓存。您需要在启动时插入6以启动链。这是由SO完成的(见http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/),所以它工作。它显然有效,可能被称为务实的解决方案。
有些人会认为这有点“骇人听闻”,如果不知道你做了什么或者你为什么想这样做,我会倾向于不这样做。这绝对不是做这些工作的好艺术。
另一种选择(user1308743已经提到了这一点):创建一个EXE已经做了你需要什么,让它从每小时任务计划程序调用。
略有不同的选项:写一个窗口服务,并实现定时器或使用类似Quartz.NET安排你的工作这种方式。也许这个解决方案拥有最多的工作和最多的企业,但它起作用(已经实现了这样的功能,并且像我需要做的那样起到一种魅力的作用)。作为附加值,您可以按照可配置的方式编写计划。
上找到SO另一种选择:Recurring tasks in ASP .NET
有趣,并不太难实施。 – formatc
感谢您的回答,我会尽快尝试第一个解决方案。对于第二个和第三个我有另一个问题。我不是一个高级开发人员,但是当我使用共享主机时,我怀疑我能够运行/计划一个.EXE,或者这可能来自代码? – Nicholas
我想尝试第一个解决方案,但正在考虑如何调用我的工厂控制器的创建操作。搜索网络WebRequest并找到如下内容: WebRequest request = WebRequest.Create(“http://www.contoso.com/default.html”); 我可以调用'Create'URL还是有另一种方法来调用ActionResult? – Nicholas
- 1. 在Azure的MVC项目中运行WebApi
- 2. 在Visual Studio代码中同时运行两个项目
- 3. 在运行时生成代码中的c#项目
- 4. 使用重复项目的源代码
- 5. 运行C#MVC项目
- 6. 从MVC项目运行exe
- 7. 在代码中添加项目时使用ItemTemplate添加项目
- 8. java.util.zip.ZipException:重复项:动态Web项目Tomcat运行时异常
- 9. 在项目中运行webpack
- 10. 在NetBeans中运行项目?
- 11. 在IntelliJ中运行项目
- 12. 从Xamarin项目在Qt C++项目代码的可重用性
- 13. 在MVC项目
- 14. 项目总是以旧代码运行
- 15. 运行Jbilling源代码(ANT项目)
- 16. 在子目录中运行ZendFramework项目
- 17. 重新运行Django项目
- 18. 如何在Eclipse中重复运行Wicket/Maven/Jetty项目?
- 19. 无法获取从MVC源代码运行的ASP.Net MVC2项目
- 20. 运行EAR项目中的主项目
- 21. MVC项目中的MVC项目
- 22. AppxManifest.xml在项目构建/重建后重新添加代码行
- 23. 运行项目在所有
- 24. Visual Studio项目:重复项目指导
- 25. 运行项目
- 26. 在运行时删除项目
- 27. 在运行时更改UniformGrid子项目
- 28. 在运行时将项目插入BoxLayout?
- 29. 添加项目RibbonDropDown在运行时
- 30. C#在运行时填充toolstripmenu项目
也许你想是这样的:[ElapsedEventHandler(http://msdn.microsoft.com/en-us/library/system.timers.elapsedeventhandler。 ASPX)。 – Schaliasos