我有Azure CLoud服務託管的ASP.NET MVC應用程序。應用程序處理呼叫阻止
我正在使用CQRS架構與命令處理程序。
而且這個系統總是有正在運行的線程,這些線程一直在後臺工作。應用程序的主要目標是向醫療中心患者發送短信。系統可與以下步驟:
- 系統啓動命令(例如StartMessageSending),這 選擇一些患者
- 它發送短信通知他們
- 並進入上確定的時間間隔睡覺。
間隔超時後,此線程重複先前的所有步驟,直到存在任何發送的患者。
與此並行,系統可以使用相同的命令(StartMessageSending)運行任意數量的其他線程。在平均系統上有大約3個與StartMessageSending命令同時運行的線程。
如果我查看應用程序日誌,我會看到Application Dispose的頻繁調用。 而這些配置導致系統的奇怪行爲:命令沒有完成他們的工作。
我給日誌的2個例子:
1)命令的正確工作
2)命令的不正確工作
而一個在幾次應用程序調用中處理它。 並且間隔等於30秒。
經過這些應用處理後,當前工作命令未完成其工作。
我想說明的是,我禁用了IIS上的idleTimeout(20分鐘不使用)超時,並設置爲特定的夜間時間periodicRestart IIS回收。
此外,應用程序非常龐大,並且在使用不同的命令時,這個問題經常發生。我舉例說明了問題的一般描述。
所以可能是有人知道:
1)我怎樣才能防止這些應用程序部署?
2)或者他們的電話有什麼可能的原因?(一般)
謝謝:)
雖然這些截圖是可愛的,我們需要看到你的代碼 – 2014-09-03 10:18:11
@YuvalItzchakov,應用是非常巨大的。這個問題在不同的命令的工作經常occures。我舉例說明了問題的一般描述。 – 2014-09-03 10:24:20
一般描述是不夠的。我們只能假設做錯了什麼,不能給我比一般的答案。請嘗試製作一個簡單,小而完整的問題重現。 – 2014-09-03 10:36:28