我可以从Windows服务调用MVC操作吗?

时间:2011-10-12 01:10:14

标签: asp.net-mvc-3 windows-services

我有一个MVC应用程序,用户可以在其中发送大量电子邮件(每个都是自定义的,因此没有批量发送选项)。我没有让用户等待这个,而是按照计划将电子邮件排队。我想做的是让Windows服务定期调用我的应用程序来触发电子邮件。但是,我真的不想为这一个动作创建一个全新的Web服务项目。有没有办法将行为包装在MVC Action中并让服务以类似于调用Web服务的方式调用此操作(无需启动浏览器窗口)?如果没有,是否可以在mvc应用程序中托管Web服务方法?如果是这样,将非常感谢任何关于如何做到这一点的好参考。我的搜索效果不佳。

2 个答案:

答案 0 :(得分:3)

当然,您可以使用WebClient类对MVC应用的URL进行GET。类似的东西:

string myUrl = "http://www.MySite.com/getemail";
WebClient wc = new WebClient();
string request = wc.DownloadString(myUrl);

答案 1 :(得分:1)

您可以考虑使用缓存过期来实际在您的Web应用程序中启动任务,这意味着不需要任何外部过程。 http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/