【发布时间】:2020-09-24 13:52:53
【问题描述】:
我正在尝试将列出 AD 组中用户的 .NET Core 3.1 应用程序放入 .NET Core Runtime Docker 容器中。 访问 AD 是在 System.DirectoryServices 命名空间中的 DirectorySearcher 的帮助下完成的。 开箱即用,.NET Core 不支持此命名空间,但通过添加包 System.DirectoryServices(dotnet add package System.DirectoryServices)安装所需的程序集,并且应用程序在 Win10 机器上运行良好。
试图让应用在 Linux .Net Core Runtime 容器中运行会引发异常,因为 DirectoryServices 不支持此平台。
所以我尝试使用基于 Windows 的容器(准确地说是标记 3.1.8-nanoserver-2004),但随后 DirectorySearcher 的 FindAll() 抛出异常
System.DllNotFoundException: Unable to load DLL 'activeds.dll' or one of its dependencies: The specified module could not be found. (0x8007007E)
我什至尝试将 DLL 从我的主机复制到容器中应用程序的 bin 目录中,但无济于事。
有人知道如何从容器访问 AD/LDAP?
【问题讨论】:
标签: docker .net-core directoryservices