2017-02-03 78 views
1

我有一個asp.net 4.5應用程序部署到Azure。 服務計劃是標準(S2)2個核心HostingEnvironment.QueueBackgroundWorkItem從不在Azure上部署asp.net mvc 4.5應用程序

我有一個長時間運行的任務,需要在獲取請求到一個操作方法後以「即燃即用」方式執行。

不過,即使有下面的測試代碼:

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機器上工作正常,並且在直接調用時也可以工作,從而阻塞請求線程。

任何想法可能導致這個問題?

回答

1

我遇到過同樣的問題。在致電支持後,他們建議我在Azure App Service的應用程序設置「WEBSITE_DYNAMIC_CACHE」中添加值爲「」的附加選項。這是暫時的修復,他們表示將來可以使用更新,這將避免使用此設置。