我正在开发一个基于.net core(2.2.103)的应用程序,该程序必须连接到LDAP服务器。在我的运行Windows的开发计算机上,我使用
不幸的是,当连接被释放时,这会抛出另一个
有可靠的适用于Linux的dotnet core LDAP实现吗?
System.DirectoryServices
命名空间来完成这个任务。
然而,该应用程序将在Linux(Ubuntu)上运行,并且我遇到了PlatformNotSupportedException
异常,于是我添加了对<PackageReference Include="Novell.Directory.Ldap" Version="2.2.1" />
的引用,并使用它来连接LDAP服务器。不幸的是,当连接被释放时,这会抛出另一个
PlatformNotSupportedException
异常(但原因是线程中止)。Unhandled Exception: System.PlatformNotSupportedException: Thread abort is not supported on this platform.
at System.Threading.Thread.Abort()
at Novell.Directory.Ldap.Connection.Dispose(Boolean disposing, String reason, Int32 semaphoreId, InterThreadException notifyUser)
at Novell.Directory.Ldap.Connection.destroyClone(Boolean apiCall)
at Novell.Directory.Ldap.LdapConnection.Finalize()
有可靠的适用于Linux的dotnet core LDAP实现吗?
Thread abort is not supported
。看起来您忘记释放连接对象了。Finalize()
方法由垃圾回收器调用以清理孤立的对象。 - Panagiotis Kanavos