0

我在 IIS 7.5 上运行 MVC4 应用程序,在某些情况下我想减慢页面的响应时间。示例案例是用户尝试自我注册。

成功后,使用有效的新用户名和密码,我希望页面立即响应。失败时,当尝试使用预先存在的用户名注册时,我希望页面将响应速度减慢到大约 15 秒。

在框架内执行此操作的最佳方法是什么,以无线程/资源重的方式延迟 HTTP 响应。

4

1 回答 1

1

我相信最简单的解决方案是在发生错误时让当前线程休眠 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();
    }
}
于 2013-03-06T14:33:45.013 回答