.NET项目的Security.dll问题

时间:2012-06-11 08:24:57

标签: .net payment

我们已开始在某些付款应用程序中收到以下错误:

方法PurchasePermitObject:MakePayment

出现意外错误

底层连接已关闭:receive上发生意外错误。无法在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结尾的内容?

1 个答案:

答案 0 :(得分:0)

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

这种问题可能是由Windows在DLL的当前工作目录中搜索,如果它无法在包含EXE的目录中找到DLL而引起的。这是一个安全隐患,微软已经设计了一些反措施。最相关的MSDN页面is here。你不能对LoadLibrary()调用做任何事情,它是在框架代码中编写的。清单有点痛苦,最简单的是 SafeDllSearchMode 注册表项。这样可以确保始终在工作目录中的随机副本之前找到c:\ windows \ system32目录中的security.dll文件。