.net - 线程试图读取或写入它没有适当访问权限的虚拟地址

标签 .net multithreading citrix

我开发了一个 .NET 2.0 扩展,它充当第三方应用程序的插件。当在除 Citrix 之外的任何设备上运行时,一切都运行良好。当作为已发布的应用程序在 Citrix 上运行时,扩展会随机崩溃,这也会使第 3 方应用程序崩溃。

我打开了一个转储文件,并发现了一条报告的异常消息:

线程尝试读取或写入它没有适当访问权限的虚拟地址。

我在谷歌上的运气不太好。该应用程序确实使用了线程,我怀疑上述情况发生在哪里,但究竟在哪里还是一个谜。如果我在 Citrix 服务器上本地运行该扩展(即不是作为已发布的应用程序),那么它可以正常工作。

由于问题的一般性质,我不期待在这里得到答案(如果有人这样做就太好了!),但如果有人能指出我的方向来帮助解决问题或描述错误消息,我会非常感谢。

谢谢

最佳答案

错误消息的性质使其不太可能是 .NET 2.0 代码的问题。这是因为 .NET 甚至不允许您尝试读取/写入它不应该执行的内存。

  • 检查您的扩展程序中是否存在任何不安全代码。这种性质的代码可能能够绕过 CLR 通常执行的验证检查。
  • 检查您的扩展程序的代码是否使用任何非托管代码(COM 或 P/Invoke)。那里可能会产生错误。
  • .NET CLR 中可能存在错误,导致在 Citrix 环境中运行时出现问题。

我要做的第一件事是分析该转储文件以查看故障发生在哪个模块。您可以下载 Windows Debugging Tools协助这项工作。

关于.net - 线程试图读取或写入它没有适当访问权限的虚拟地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3352518/

相关文章:

c# - 如何等待循环内的所有踏板完成运行

multithreading - 鞋和重型操作在单独的线程中

c# - 不卡住 Thread.Sleep 的替代品,用于在任务中等待

c# - 如何测量连接到 Citrix 场的用户数量

c# - document.readyState == "complete"始终为假。状态始终为 "interactive"

c# - 使用以前排序的列表中的位置

c# - 将 WPF DrawingGroup 呈现为单个 ImageSource

python - 限制终端服务器下应用程序实例数量的技术

http - HTTP header 中的额外空间会在 HAProxy 上产生 400 错误

c# - 无法将 dotnet 应用程序作为守护程序服务执行