1

在全新的 Vista 机器上,每当我尝试在调试模式下启动项目时,我都会立即收到以下错误:

尝试读取或写入受保护的内存。这通常表明其他内存已损坏。

我不购买消息中的“其他内存已损坏”部分。我认为该错误可能与我刚刚移至新机器的项目有关,但即使是全新的空白项目也表现出相同的行为。当我在不调试的情况下开始时,我没有收到任何消息。

我在网上阅读了一些修复方法:

  1. 2007 年有一个 .NET 2.0 的服务包解决了这些问题。我在 3.5 SP1 上,所以我怀疑这是问题所在。
  2. 为 x86 显式编译,因为您引用的 DLL 是 32 位的,您会遇到问题。我使用的是 Core 2 Duo,但运行的是 32 位 Vista,所以这应该不是问题,对吧?(另外,在测试项目中,没有 DLL。)
  3. 在调试下,取消选中“抑制模块加载时的 JIT 优化”。没有为我做任何事。
  4. 擦除整个操作系统并重新安装 VS2008。(这显然对孩子有用。)我现在没有时间。

我可能不需要调试就可以做我需要做的事情,但我肯定想把它拿回来。如果这里有人能想到为什么会发生这种情况,请告诉我。谢谢。

4

1 回答 1

1

如果它是一个 Web 项目,您可以尝试的另一件事是执行以下操作。在 web.config 文件中指定以下内容:

<system.web>

<trust level="Full"/>

</system.web>

虽然这并不理想,但如果它有效,那么您可以开始缩小问题范围。您收到的错误是一个非常普遍的错误,也可能是由 DEP(数据执行保护)引起的。据我了解,这通常只在 Windows Server 2003 上。如果您在 Windows2003 上,您可以执行以下操作来禁用 DEP:

  1. 右键单击我的电脑,然后单击属性
  2. 单击高级选项卡
  3. 单击性能部分中的设置按钮
  4. 确保选中标记为“为除我选择的进程和服务之外的所有进程和服务启用 DEP”的单选按钮
  5. 单击列表底部的添加
  6. 浏览到他们将要运行的执行程序并选择它
  7. 确保选中列表中可执行文件名称旁边的复选框,然后单击确定

最后一个选项是查询数据库时也可能出现错误。在这种情况下,您需要正确检查查询/oledb 命令参数类型/值/oledb 参数的顺序。

我希望这些解决方案之一对您有所帮助!祝你好运!

于 2009-08-04T06:54:43.977 回答