.Net Core Docker не удается загрузить DLL ‘activeds.dll ‘

#c# #docker #asp.net-core #.net-core

#c# #docker #asp.net-core #.net-core

Вопрос:

У меня есть ASP.Net Основное приложение, которое нормально работает на IISExpress.

Я совершенно новичок в Docker, поэтому, когда я добавляю поддержку Docker в проект и запускаю его, он захлебывается в этом разделе:

 DirectoryEntry processEntry = new DirectoryEntry("LDAP://MyLdap", user, password);
processEntry.Options.Referral = ReferralChasingOption.Subordinate;
DirectorySearcher searcher = new DirectorySearcher(processEntry);
  

С ошибкой:

 DllNotFoundException: Unable to load DLL 'activeds.dll' or one of its dependencies: The specified module could not be found. (Exception from HRESULT: 0x8007007E)
  

Я полагаю, это потому, что Docker не может видеть dll, поэтому я добавил следующее в Dockerfile:

 COPY ["C:/Windows/System32/activeds.dll","activeds.dll"]
  

Но, похоже, это не улучшило ситуацию, как мне сделать dll доступной для контейнера Docker?

Комментарии:

1. Эта ошибка говорит о том, что DLL не была найдена в папке вашего приложения или GAC. .NET не просматривает System32, он просматривает папку приложения или GAC. Поскольку вы используете docker, вам следует поместить эту сборку в ту же папку, что и приложение

2. Все пространство имен DirectoryServices доступно только в полной платформе. Как вы добавили это в свое приложение? Вы использовали пакет совместимости с Windows ?

3. @Lobsterpants Используете ли вы контейнеры Windows или Linux? Поддержка .NET Framework доступна только в контейнерах Windows Docker.

4. @anuraj да, я использую контейнеры Windows