Ada*_*one 16 .net c# entity-framework asp.net-core-mvc asp.net-core
好吧,这是一个非常怪异的问题,刚刚开发出来,对于我的生活,我不知道从哪里开始.
出于某种原因,我在EF 6中遇到了致命的错误,但这种情况只发生在我转换为.NET Core 1.1之后.这个应用程序在ASP.Net MVC 4上运行没有问题.
对于搜索引擎:
托管调试助手'FatalExecutionEngineError': '运行时遇到了致命错误.错误的地址是0x77c81a09,位于线程0x2520.错误代码是0xc0000005.此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证部分中的错误.此错误的常见来源包括COM-interop或PInvoke的用户封送错误,这可能会破坏堆栈.```
从我在网上找到的,这是.NET的托管环境之外的问题....这意味着我只是羞于无知.
第一次遇到这个错误时,一个简单的Clean和Build将它固定了一会儿,然后又在同一个地方再次出现.
到目前为止,我在两个地方看到过这个错误:
var vm = new ManagerLogIndexViewModel()
{
Locations = await _db.Locations.ToListAsync(),
};
Run Code Online (Sandbox Code Playgroud)
而且(虽然更复杂):
var results = await _db.InvolvedPersons
.Where(
x =>
x.LastName.ToUpper().Contains(q) || x.FirstName.ToUpper().Contains(q) ||
(x.FirstName + " " + x.LastName).ToUpper().Contains(q))
.Select(x => new {x.FirstName, x.LastName, x.Id})
.GroupBy(x => x.LastName + " " + x.LastName)
.Select(x => x.FirstOrDefault())
.ToDictionaryAsync(x => x.FirstName + " " + x.LastName, x => x.Id.ToString());
Run Code Online (Sandbox Code Playgroud)
它可能与某些事情有关async吗?
还有其他实体框架调用,一切正常,即使使用异步操作符也是如此.
即使是第一个例子也是在Clean和Build之后工作的.
我真的不知所措.我读过它可能与环境有关.目前,我没有其他可供测试的环境,只有我的开发机器.如果我在另一台机器上运行这个,我会尝试稍后更新.
我在发布之前做了另一个测试:
如果我单步执行代码(第一个示例),一切都按预期工作.
停止.删除断点.开始.崩溃.
这让我兴奋不已.
更新
好像这不会变得更加陌生,每次启动时都不会发生此错误.
我会说大约60/40支持崩溃.当它运行(并且第一个查询通过)时,我对进程的生命周期没有任何问题.
另一个更新
看起来这是孤立的在IIS Express下运行.如果我以独立的方式运行应用程序,我就无法发生崩溃.
一些技术位:
关闭编辑
为了这个线程的完整性(因为此时有几个线程),@ gregg-miskelly提供的解决方法(由@SwampyFox提交给SO)确实有效.该错误已提交给MS,应在将来的.NET Framework版本中修复.
讨论发生在coreclr GitHub页面上
Swa*_*Fox 14
根据github上的OP帖子,ASP 6.1.3在ASP.Net Core MVC#10717中使用FatalExecutionEngineError崩溃IIS Express,这是框架中的崩溃.
通过打开ETW GC内存跟踪触发崩溃.
要解决此问题,您可以尝试在Visual Studio中关闭ETW GC内存跟踪.
| 归档时间: |
|
| 查看次数: |
1219 次 |
| 最近记录: |