NFA System.Security.Cryptography.CryptographicException

Document ID : KB000106031
Last Modified Date : 11/07/2018
Show Technical Document Details
Issue:
While accessing NFA with TLS MySQL configured, you may run into this error in the browser:

Server Error in '/RA' Application.
The system cannot find the file specified.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Security.Cryptography.CryptographicException: The system cannot find the file specified.


Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[CryptographicException: The system cannot find the file specified.
]
   System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) +36
   System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) +0
   System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) +218
   System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password) +109
   MySql.Data.MySqlClient.NativeDriver.GetClientCertificates() +193
   MySql.Data.MySqlClient.NativeDriver.StartSSL() +84
   MySql.Data.MySqlClient.NativeDriver.Open() +1007
   MySql.Data.MySqlClient.Driver.Open() +22
   MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) +239
   MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() +10
   MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +286
   MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() +93
   MySql.Data.MySqlClient.MySqlPool.GetConnection() +64
   MySql.Data.MySqlClient.MySqlConnection.Open() +629
Environment:

NFA 9.3.6+
Windows 2012+

Resolution:
  1. RDP to the Console Server.
  2. Open up IIS Manager.
  3. Go to Application Pools and find the "DefaultAppPool, ProxyServices, and ReporterAnalyzerWebSite".
  4. Select each Application Pool, 1 by 1, and go to its 'Advanced Settings'.
  5. Set the 'Load User Profile' to "True" for all 3 Application Pools.
  6. Open a CMD prompt (with administrator privileges) and do an IISRESET.