我正在寻找.NET下的访问冲突错误的常见原因。
到目前为止我检查过的事情 -
还有其他建议吗?
编辑 - 将崩溃转储分析移至不同的问题。
答案 0 :(得分:3)
使用不安全或非托管代码可以获得这种类型的异常。
发生访问冲突 代码时的非托管或不安全代码 尝试读取或写入内存 没有分配的,或者 它没有访问权限。这个 通常是因为指针有一个 坏的价值。并非所有读取或写入 通过坏指针导致访问 违规,所以访问违规 通常表示有几个读数 或者写错了 指针,那个记忆可能是 损坏。因此,访问违规 几乎总是表明严重 编程错误。在.NET中 框架版本2.0,一个 AccessViolationException清楚 识别这些严重的错误。
完全由...组成的程序 所有可验证的托管代码 引用有效或为null, 和访问违规是不可能的。 发生AccessViolationException 仅在可验证的托管代码时 与非托管代码或与之交互 不安全的托管代码。
推荐:
答案 1 :(得分:1)
您是在运行时生成IL还是使用这样做的组件?使用不安全的C#代码,进行指针操作?