1

When creating a solace connection we get on Windows server 2016/2019 the following message: libcrypto-1_1.dll missing.

It works perfectly on Windows 10 and Windows 2012 R2.

The exact output is as follows: Error - Sdk: 13:38:25 | solClientOS.c:1142 (00001050) Could not load library 'libcrypto-1_1.dll', error: The specified module could not be found. | null

Which is strange since the libcrypto-1_1.dll file is available in this folder.

What can be a reason for this issue?

ArnoutDev
  • 21
  • 1
  • 3
  • Where is dll located? The file should be in same folder as the c# executable. – jdweng Mar 02 '20 at 11:04
  • It is located in the same folder as the c# executable. – ArnoutDev Mar 02 '20 at 11:19
  • Is it same version as the one in Windows 10 and 2012 R2? It could be something with a 32 bit version and 64 bit version. If your code is compiled in 32 bit mode you should be using a 32 bit dll and not 64. – jdweng Mar 02 '20 at 11:33
  • "Is it same version as the one in Windows 10 and 2012 R2?" Yes, it is an exact copy of the folder contents. Our code is 32 bit and so is the libcrypto-1_1.dll (which came with the nuget package) – ArnoutDev Mar 02 '20 at 12:06
  • You need to check with vendor. I would be guessing. I have seen lots of cases with Net 4.7 that the default encryption parameters changed and does not work with 32 bit mode. Have not gotten any response for a solution. The issue may also be happening with Net 4.6 (also not sure). I just know a lot of people have had issues upgrade to Net 4.7 with encryption mode with working projects. – jdweng Mar 02 '20 at 12:13
  • Since you mentioned issues with 4.7 I downgraded it to 4.5. This did not fix the issue. I ported the project from .net framework to .net core 3.1. This did not fix the issue either. – ArnoutDev Mar 02 '20 at 12:53
  • Core 3.1 uses same encryption as Net 4.7. Did you do clean build after changing target? I would try Core 2.0. What properties is your project : x86, x64, CPUAny? – jdweng Mar 02 '20 at 13:07
  • Tried Core 2.0 (published with dependencies) with Any CPU/x86/x64. The same issue occurs. – ArnoutDev Mar 02 '20 at 13:46
  • Check working system to see if the dll is in more than one location. Also check environmental variables to see if any correspond with location of dll. – jdweng Mar 02 '20 at 14:28
  • The dll is exclusively in the same folder as the executable. There is nothing in the environment variables related to libcrypto. – ArnoutDev Mar 02 '20 at 15:51
  • I'd also compare the PATH environment variable, or any other configuration options related to dynamic linking on your OS. Mainly any differences between the working and non-working variants. Is "." on the PATH for example? – Szocske Mar 04 '20 at 14:55
  • Another place to try copying the openssl dlls is the same directory where libsolclient.dll resides. – Szocske Mar 04 '20 at 15:09
  • I have almost the same issue. With C++. `Could not load library 'libcrypto-1_1.dll', error: The specified module could not be found.` Although the libcrypto is statically linked with the executable. Windows 10 OS. MSVC compiler – SergeiK Oct 15 '20 at 10:52

1 Answers1

1

The libcrypto-1_1.dll and libssl-1_1.dll with product version 1.1.1c included in the Solclient nuget package version 10.8.0 does not work correctly on a windows 2016 server.

When I copy the 1.1.1d product version of libcrypto-1_1.dll and libssl-1_1.dll over the installed package it works without issues on a windows 2016 server.

EpicKip
  • 4,015
  • 1
  • 20
  • 37
ArnoutDev
  • 21
  • 1
  • 3