c# webservice异步调用wcf 异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值

来源:互联网 发布:admaster数据分析师 编辑:程序博客网 时间:2024/06/03 17:57

堆栈是用于存放变量和方法,“位于调用堆栈之上”,我们可以理解为堆栈里面已经没有变量和方法可以调用了,其实也就是程序已经结束了,堆栈都空了(指针在原本堆栈的外部--之上)。
放在我的实际场景里面:我开了一个异步去处理一个事件,而主线程并没有等待这个异步就直接结束了,实际上就是主线程关闭了,异步却还在运行,结果就是内存都释放了,异步当然找不到变量了,就报错了。

触发场景:多线程跑大数据量或者很复杂的计算逻辑的时候,执行时间超过20分钟,线程被IIS自动回收了

解决方案: IIS->应用程序池->找到应用的应用程序池,右键,高级设置->将闲置超时(分钟)改为1740(默认为20分钟)

阅读全文
0 0
原创粉丝点击