我有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