已开发的新应用程序大量使用 Web 服务。我们开始定期处理内存不足异常(随着使用量的增加)。在查看内存转储时,我注意到有大量相同大小的字节 []。查看这些 byte[] 的句柄,我注意到它们被 System.Security.Policy.Evidence 引用
经过进一步审查,我将这些内存分配确定为其中包含我们的 Web 服务类的实际程序集 (dll)(特别是其中 2 个程序集在内存中的 128 次和 115 次)。我在这里找到了一些信息-> blogs.msdn.com/tess/archive/2008/06/25/asp-net-memory-leak-byte-arrays-rooted-in-system-security-policy-evidence.aspx
在这里 --> blogs.javista.com/2009/03/18/best-practices-for-crm-memory-usage/
但我还没有找到很多关于这个问题的其他参考资料。(.NET 框架将 Web 服务程序集加载到内存中以检查安全策略)。
目前,我看到的唯一解决方案之一是将 Web 服务的程序集分成引用库的较小程序集。
我很困惑为什么 .NET 框架必须将整个程序集加载到内存中以检查策略,并想看看其他人是否遇到过这个问题以及您的解决方案是什么。
谢谢,丹