c# - HostingEnvironment.QueueBackgroundWorkItem 永远不会在 azure 部署的 asp.net mvc 4.5 应用程序上执行

标签 c# asp.net-mvc-4 azure

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

我有一个长时间运行的任务,需要在对操作方法发出 get 请求后以“即发即忘”的方式执行。

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

    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 应用服务“WEBSITE_DYNAMIC_CACHE”的应用程序设置中添加附加选项,值为“0”。这是临时修复,他们表示将来将提供更新,这将允许避免使用此设置。

关于c# - HostingEnvironment.QueueBackgroundWorkItem 永远不会在 azure 部署的 asp.net mvc 4.5 应用程序上执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42028468/

相关文章:

c# - Azure API 管理和 ASMX/WSDL SOAP 端点?

c# - ORM 存储库模式

asp.net-mvc - 类型 'System.Web.Mvc.MvcWebRazorHostFactory' 的表达式不能用于返回类型 'System.Web.WebPages.Razor.WebRazorHostFactory'

c# - KnockoutJS 的购物车逻辑(?)问题

asp.net-mvc - 如何在 mvc4 的特定 View 中添加单个 css 文件?

sql-server - Azure SQL 管理实例 - 恢复数据库不同版本

c# - Entity Framework DB-First,实现继承

c# - 我还需要在 c# 中的 redis 缓存中存储什么?

azure - 当自动索引指定为 'none' 时,索引模式值不能为 'true'

azure - 添加负载均衡器时云服务预留IP映射错误