截至今天,我无法再使用Visual Studio调试任何c#代码。如果我使用调试器,可能会遇到断点,但只要执行暂停,问题就会开始。按Step Into或Continue将正常生成AccessViolationException
表示内存已损坏并终止当前请求。如果我再运行一个Web请求,我将获得SEHException
(发生在未知模块中)。
更奇怪的是,如果AccessViolationException没有触发,显示下一个语句的程序计数器会随机跳转。然后以随机顺序执行代码! (直到它崩溃)。
如果没有命中断点,则应用程序将以调试模式运行(即使连接了调试器)。
我确信这不是代码问题。我实际上可以使用新项目和以下代码重现访问冲突:
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello world");
Console.WriteLine("Access violation"); // This will throw if breakpoint set
}
}
删除了VS缓存,删除.suo,清理并尝试了安全模式。一个可能的怀疑是,这是在Windows 10预览机上,上周有一个更新。我不确定在哪里可以确认它,或者在不重新映像机器的情况下修复它。
答案 0 :(得分:1)
从Any CPU
更改为x64
只能在我的" Hello World"测试项目。
为了开始我的原始项目,这实际上是一个Web项目,我不得不采取一些额外的步骤。
x64
,而不仅仅是Web项目。Tools > Options > Projects & Solutions > Web Projects > Use 64 Bit IIS ...
Internet Information Services Hostable Web Core
)安装Turn Windows Features On or Off
。在我执行此操作之前,在以HttpException (0x80004005): Specified argument was out of the range of valid values
形式启动64位Web项目时会出错。安装HWC修复它。仍然没有更明智的为什么会发生这种情况,但至少我可以再次调试项目。
答案 1 :(得分:0)
这个异常似乎是从无处开始的,当然让我有些头疼,但我能够通过以下方式解决我的问题: