C# HostingEnvironment.QueueBackgroundWorkItem从未在azure部署的asp.net mvc 4.5应用程序上执行

C# HostingEnvironment.QueueBackgroundWorkItem从未在azure部署的asp.net mvc 4.5应用程序上执行,c#,asp.net-mvc-4,azure,C#,Asp.net Mvc 4,Azure,我在azure上部署了一个asp.net 4.5应用程序。 服务计划为标准(S2)2核 我有一个长时间运行的任务,需要在对操作方法发出get请求后以fire and forget方式执行 但即使使用以下测试代码: public ActionResult TestItem() { // test method source is below HostingEnvironment.QueueBackgroundWorkItem(ct => thi

我在azure上部署了一个asp.net 4.5应用程序。 服务计划为标准(S2)2核

我有一个长时间运行的任务,需要在对操作方法发出get请求后以fire and forget方式执行

但即使使用以下测试代码:

    public ActionResult TestItem()
    {
        // test method source is below
        HostingEnvironment.QueueBackgroundWorkItem(ct => this.Context.TestMethod(););
        return new HttpStatusCodeResult(HttpStatusCode.OK);
    }


    public void TestMethod()
        {
             using (var conn = _connectionFactory.Create())
             {
                 conn.Open();
                 conn.Execute("INSERT INTO web.HotelSearchQueue (HSQ_ID) VALUES(@id)", new { @id = Guid.NewGuid() });
             }
        }
什么也没发生。当然,这在DEV机器上工作得很好,直接调用时也可以工作,阻塞请求线程


知道是什么导致了这个问题吗?

我也遇到过同样的问题。打电话给支持人员后,他们建议我在Azure应用程序服务的应用程序设置中添加附加选项“网站动态缓存”,值为“0”。这是一个临时修复程序,他们说将来将提供更新,这将允许避免使用此设置。

大约一年后,我遇到了一些关于QueueBackgroundWorkItem的愚蠢但类似的问题。我调用此方法生成后台任务,将文件上载到远程服务器。我有4个PDF流要上传。其中3个会上传,一个不会,无论我尝试排队4个后台任务来发送文件,还是一个后台任务来发送一个有问题的PDF。失败的总是同一个PDF。并且没有抛出异常或任何东西。后台方法从未启动过。当我在主线程上调用该方法时,文件被成功发送。