我在ASP.NET MVC 4 Web应用程序中有以下代码:
的Global.asax.cs
protected void Application_Start()
{
Task.Factory.StartNew(
() =>
{
while (!cancellationToken.IsCancellationRequested)
{
Thread.Sleep(100);
Trace.WriteLine("Working");
}
},
cancellationToken,
TaskCreationOptions.LongRunningTask,
TaskScheduler.Current);
}
似乎任务在应用程序初始化时开始运行,运行一段时间,然后停止。只要AppDomain运行,我想继续运行。导致它停止的原因是什么,我可以做些什么来阻止它停止?
答案 0 :(得分:0)
从您获得的代码中,您的cancellationToken似乎为null,并且您的代码行中有NullRefernceException:
while (!cancellationToken.IsCancellationRequested)
你能在日志中看到这样的例外吗?
答案 1 :(得分:0)
事实证明,潜在的问题是Glimpse TraceInspector,this issue的副作用。
因为这会导致抛出异常,所以任务正在停止。
我仍然无法完全解释细节,但是将其添加到我的Web.config解决了问题:
<glimpse>
<inspectors>
<ignoredTypes>
<add type="Glimpse.Core.Inspector.TraceInspector, Glimpse.Core"/>
</ignoredTypes>
</inspectors>
</glimpse>