Asp.net mvc 从ASP.NET MVC应用程序执行Web请求是一种不好的做法吗?
我正在Windows Azure中运行/部署一个web应用程序(ASP.NET MVC) 如果我从该应用程序执行大量Web请求,这是一种不好的做法吗?即:Asp.net mvc 从ASP.NET MVC应用程序执行Web请求是一种不好的做法吗?,asp.net-mvc,azure,windows-services,httpwebrequest,webrequest,Asp.net Mvc,Azure,Windows Services,Httpwebrequest,Webrequest,我正在Windows Azure中运行/部署一个web应用程序(ASP.NET MVC) 如果我从该应用程序执行大量Web请求,这是一种不好的做法吗?即: ActionResult SomeAction() { WebRequest.Create(some url); .... } 有些动作被多次调用。此外,某些操作可能会创建多达100个Web请求,甚至更多 这种做法不好吗? 我应该改用Windows服务吗?即: ActionResult SomeAction()
ActionResult SomeAction()
{
WebRequest.Create(some url);
....
}
有些动作被多次调用。此外,某些操作可能会创建多达100个Web请求,甚至更多
这种做法不好吗?我应该改用Windows服务吗?即:
ActionResult SomeAction()
{
//Save the request in a db and let a Windows Service to poll this db
//and do the WebRequests from outside the MVC application
}
这不是一个坏的做法,直到这是强制性的为您的项目 顺便说一句,您可以使用以下最佳做法包装远程呼叫:
“很多次”是什么意思?你能同时做多少件事?他们是什么类型的电话?你所做的事情没有本质上的错误。但是,使用windows服务处理请求的队列肯定可以让您更好地管理吞吐量。例如,如果调用
SomeAction
的次数超过了网站能够处理的次数,会发生什么情况?你能接受一些“丢失”的请求吗?这个决定取决于实际的预期负载,以及您是否可以扩展以处理它。我同意其他人的看法。如果这是一个面向用户的应用程序,这将是一个令人不快的页面。如果这是一个内部临时使用的东西,像这样的东西就可以了。最终,如果你想扩大规模,那么你应该按照@mellamokb的建议,将你的100个作业排队,然后返回给用户,并有一些流程来监控100个作业的状态。