我在 IIS 7.5 上运行 MVC4 应用程序,在某些情况下我想减慢页面的响应时间。示例案例是用户尝试自我注册。
成功后,使用有效的新用户名和密码,我希望页面立即响应。失败时,当尝试使用预先存在的用户名注册时,我希望页面将响应速度减慢到大约 15 秒。
在框架内执行此操作的最佳方法是什么,以无线程/资源重的方式延迟 HTTP 响应。
我在 IIS 7.5 上运行 MVC4 应用程序,在某些情况下我想减慢页面的响应时间。示例案例是用户尝试自我注册。
成功后,使用有效的新用户名和密码,我希望页面立即响应。失败时,当尝试使用预先存在的用户名注册时,我希望页面将响应速度减慢到大约 15 秒。
在框架内执行此操作的最佳方法是什么,以无线程/资源重的方式延迟 HTTP 响应。
我相信最简单的解决方案是在发生错误时让当前线程休眠 15 秒。您的代码将如下所示:
public class HomeController : Controller
{
public ActionResult Index()
{
// TODO: do something to determine if the action is a success or not
var error = true;
if (error)
{
Thread.Sleep(TimeSpan.FromSeconds(15));
}
return this.View();
}
}
编辑:或者可能是异步版本:
public class HomeController : Controller
{
public async Task<ActionResult> Index()
{
// TODO: do something to determine if the action is a success or not
var error = true;
if (error)
{
await Task.Delay(TimeSpan.FromSeconds(15));
}
return this.View();
}
}