我们已开始在某些付款应用程序中收到以下错误:
方法PurchasePermitObject:MakePayment
出现意外错误底层连接已关闭:receive上发生意外错误。无法在DLL'security.dll'中找到名为“EnumerateSecurityPackagesW”的入口点。
错误偶尔发生,没有押韵或理由。在研究这个问题时,我发现使用名为security.dll的dll存在问题
现在应用程序使用了一个安全性dll,但它是以前缀为例ABCsecurity.dll和我本以为这会阻止这个问题,因为它是由MS和其他博客提供的解决方案等。
任何想法都会被指定,因为这可能会将它完全重命名,远离任何以security.dll结尾的内容?
答案 0 :(得分:0)
错误消息显示它正在使用“security.dll”,因此它与“ABCsecurity.dll”无关。在该计算机的硬盘驱动器中搜索名为“security.dll”的文件
这种问题可能是由Windows在DLL的当前工作目录中搜索,如果它无法在包含EXE的目录中找到DLL而引起的。这是一个安全隐患,微软已经设计了一些反措施。最相关的MSDN页面is here。你不能对LoadLibrary()调用做任何事情,它是在框架代码中编写的。清单有点痛苦,最简单的是 SafeDllSearchMode 注册表项。这样可以确保始终在工作目录中的随机副本之前找到c:\ windows \ system32目录中的security.dll文件。