Инициализатор типа "Класс" выдал исключение. Ошибка библиотеки
У меня есть служба, которая пытается загрузить DLL. Мой сервис работает нормально на моем ноутбуке для разработчиков, но при попытке использовать два других ноутбука я получаю следующее исключение:
The type initializer for "NanoProtoApi.Interop" threw an exception. --->System.Exception: LoadLibrary failed: C:\Program Files\Proj\x64\Nanomsg.dll.
Я проверил местоположение DLL, и он определенно там. Я понятия не имею, что происходит. Кто-нибудь знает, что происходит и как решить эту проблему?
Вот трассировка стека исключений:
System.TypeInitializationException: The type initializer for 'NanoProtoApi.Interop' threw an exception. ---> System.Exception: LoadLibrary failed: C:\Program Files\Proj\x64\Nanomsg.dll
at NanoProtoApi.NanomsgLibraryLoader.LoadWindowsLibrary(String libName, SymbolLookupDelegate& symbolLookup)
at NanoProtoApi.Interop..cctor()
--- End of inner exception stack trace ---
at NanoProtoApi.NanomsgSocketBase..ctor(Domain domain, Protocol protocol)
at NanoProtoApi.Protocols.SubscribeSocket..ctor()
at MK18.ATR.GATR.GatrProcessingClient.<>c.<runDetectReportFilteredTask>b__26_0() in C:\Users\user\Documents\MK 18\src\coin\mk18atr\project\Utilities\GatrProcessingClient.cs:line 238
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at MK18.ATR.GATR.GatrProcessingClient.<SubscribeToDetectReportFiltered>d__25.MoveNext() in C:\Users\user\Documents\MK 18\src\coin\mk18atr\project\Utilities\GatrProcessingClient.cs:line 219
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_1(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem()
at System.Threading.ThreadPoolWorkQueue.Dispatch()
1 ответ
Обычно это означает, что некоторый класс в библиотеке три является исключением во время статического конструирования. Поскольку произошло исключение, загрузка не удалась. В общем, библиотеки должны учитывать это и обрабатывать сбои во время загрузки. Поскольку это работает для вас, и в трассировке стека есть некоторые следы сетевого взаимодействия, я предполагаю, что существует проблема при попытке получить доступ к некоторому удаленному ресурсу. Требует ли этот компонент подключения к другим машинам? Можно ли получить доступ к этим машинам с сервера?