Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#虚拟泛型方法调用导致VS 2013调试器崩溃_C#_Asp.net Mvc 5 - Fatal编程技术网

C#虚拟泛型方法调用导致VS 2013调试器崩溃

C#虚拟泛型方法调用导致VS 2013调试器崩溃,c#,asp.net-mvc-5,C#,Asp.net Mvc 5,我在调试以下代码时遇到了一个奇怪的问题 List<int> entityIds = _syncEngine.SearchChangeTrackedEntity<int,Order>(syncGuid, SyncType.New, null, 1000); List entityid=\u syncEngine.SearchChangeTrackedEntity(syncGuid, SyncType.New,null,1000); 此方法的接口定义为 List&l

我在调试以下代码时遇到了一个奇怪的问题

List<int> entityIds = _syncEngine.SearchChangeTrackedEntity<int,Order>(syncGuid,
   SyncType.New, null, 1000);
List entityid=\u syncEngine.SearchChangeTrackedEntity(syncGuid,
SyncType.New,null,1000);
此方法的接口定义为

List<T> SearchChangeTrackedEntity<T,U>(Guid syncGuid,
   SyncType syncType, List<AdditionalCriterion> filters, int maxResults)
       where U : IChangeTrackedEntity;
List SearchChangeTrackedEntity(Guid-syncGuid,
SyncType(同步类型、列表筛选器、int maxResults)
式中U:i变化性;
实现接口方法定义的类为

public virtual List<T> SearchChangeTrackedEntity<T, U>(Guid syncGuid,
   SyncType syncType, List<AdditionalCriterion> filters, int maxResults)
      where U : IChangeTrackedEntity
public虚拟列表SearchChangeTrackedEntity(Guid-syncGuid,
SyncType(同步类型、列表筛选器、int maxResults)
其中U:IChangeTrackedEntity
我正在本地IIS实例(Win7)上运行此代码。当代码中稍后使用EntitlyId列表时,调试器会引发“Visual Studio实时调试器”“w3wp.exe[7536]中发生未处理的win32异常”异常

真正奇怪的是,如果调试器未运行,代码将正常执行


是什么导致了这个问题?

所以一周后,我偶然发现了似乎解决了这个问题的方法

修复方法是在工具>选项>调试器>常规中设置标志“使用托管兼容性模式”


请参阅:

失败的代码行是什么?同步引擎是本机代码吗?可能是它没有将本机结果编组到列表;如果(syncGuid!=Guid.Empty&&entityIds!=null&&entityIds.Count>0)通过“局部变量”窗口查看entityIds iv VS,则会得到以下消息:“无法获取局部变量或参数‘entityIds’的值,因为它在此指令指针处不可用,可能是因为它已被优化。”这使我更加怀疑本机代码和本机到托管数据封送问题。你的应用程序中有任何本机代码吗?这也是我的想法,但是应用程序都是完全受管理的CLR代码。提供的信息让我感到困惑。可能是未显示的代码导致了问题。问题是否在第一次执行if语句时发生?您是在单步执行代码时收到奇怪的调试器消息,还是仅在崩溃后附加时收到?如果只是在之后,请尝试单步执行代码并查找任何奇怪的内容。