Sam*_*ron 15 .net c# stack-overflow crash runtime
以下代码正常工作,直到我升级到.NET 4(x64)
namespace CrashME
{
class Program
{
private static volatile bool testCrash = false;
private static void Crash()
{
try
{
}
finally
{
HttpRuntime.Cache.Insert("xxx", testCrash);
}
}
static void Main(string[] args)
{
Crash();
// Works on .NET 3.5 , crash on .NET 4
}
}
}
Run Code Online (Sandbox Code Playgroud)
我刚刚发现了运行时错误,还是我的使用存在问题?
这似乎是CLR中的一个错误 - 您应该将其报告给Microsoft.
需要注意的是,StackOverflowException发生如在CLR尝试执行 Crash不,期间的执行Crash方法-实际上该计划从未进入方法.这似乎表明这是CLR中的一些低级故障.(另请注意,抛出的异常也没有堆栈跟踪).
此异常非常特定于这种情况 - 更改任何一项修复此问题,例如以下代码正常工作:
private static void Crash()
{
bool testCrash2 = testCrash;
try { }
finally
{
HttpRuntime.Cache.Insert("xxx", testCrash2);
}
}
Run Code Online (Sandbox Code Playgroud)
我建议您向Microsoft报告,但尝试通过在此期间调整代码来解决此问题.