3

我们的一些支付应用程序开始出现以下错误:

来自方法 PurchasePermitObject 的意外错误:MakePayment

底层连接已关闭:接收时发生意外错误。无法在 DLL“security.dll”中找到名为“EnumerateSecurityPackagesW”的入口点。

错误偶尔发生,没有韵律或原因。在研究这个问题时,我发现使用名为 security.dll 的 dll 存在问题

https://connect.microsoft.com/VisualStudio/feedback/details/104453/existence-of-a-dll-named-security-dll-in-bin-directory-causes-web-service-request-to-fail- with-401-access-denied

现在应用程序使用了一个安全 dll,但它的前缀是 ABCsecurity.dll,我原以为这会阻止这个问题,因为它是 MS 和其他博客等提供的解决方案。

任何想法都会引起人们的注意,是否有可能将其完全重命名为以 security.dll 结尾的任何内容?

4

1 回答 1

0

错误消息说它正在使用“security.dll”,因此它与“ABCsecurity.dll”无关。在该机器的硬盘驱动器中搜索名为“security.dll”的文件

此类问题很可能是由于Windows在包含EXE的目录中找不到DLL而在进程的当前工作目录中查找DLL引起的。这是一个安全隐患,微软已经设计了一些应对措施。最相关的 MSDN 页面在这里。您无法对框架代码中的 LoadLibrary() 调用做任何事情。清单有点痛苦,最简单的是SafeDllSearchMode注册表项。这可确保始终先找到 c:\windows\system32 目录中的 security.dll 文件,然后再在工作目录中随机复制。

于 2012-06-11T12:48:33.837 回答