【问题标题】:Security.dll Issue with .NET project.NET 项目的 Security.dll 问题
【发布时间】:2012-06-14 03:39:40
【问题描述】:

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

来自方法 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 结尾的任何内容?

【问题讨论】:

    标签: .net payment


    【解决方案1】:

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

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

    【讨论】:

    • 为此欢呼,错误的偶发性使得诊断非常痛苦。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-24
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    • 1970-01-01
    相关资源
    最近更新 更多