我想知道當您的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. JobScheduler不在MVC項目中運行
- 2. 在Azure的MVC項目中運行WebApi
- 3. 在運行時生成代碼中的c#項目
- 4. 在Visual Studio代碼中同時運行兩個項目
- 5. 使用重複項目的源代碼
- 6. rails 3重複代碼多個項目
- 7. 運行C#MVC項目
- 8. 從MVC項目運行exe
- 9. 在2.0運行時運行.NET4項目
- 10. 在代碼中添加項目時使用ItemTemplate添加項目
- 11. java.util.zip.ZipException:重複項:動態Web項目Tomcat運行時異常
- 12. 在NetBeans中運行項目?
- 13. 在項目中運行webpack
- 14. 在IntelliJ中運行項目
- 15. 從Xamarin項目在Qt C++項目代碼的可重用性
- 16. 在MVC項目
- 17. 運行Jbilling源代碼(ANT項目)
- 18. 項目總是以舊代碼運行
- 19. VS2010項目運行代碼分析
- 20. 在NetBeans中運行項目時NumberFormatException
- 21. 重複項目
- 22. 在子目錄中運行ZendFramework項目
- 23. 重新運行Django項目
- 24. Android項目中的運行時目錄
- 25. 如何在Eclipse中重複運行Wicket/Maven/Jetty項目?
- 26. 無法獲取從MVC源代碼運行的ASP.Net MVC2項目
- 27. 在重複項目上重複更新
- 28. 運行EAR項目中的主項目
- 29. MVC項目中的MVC項目
- 30. MapReduce代碼實時項目
也許你想是這樣的:[ElapsedEventHandler(http://msdn.microsoft.com/en-us/library/system.timers.elapsedeventhandler。 ASPX)。 – Schaliasos