!Cannot login: 'Strong name signed assemblies...' or 'The type initializer...'

Build 1501 on 14/Nov/2017  This topic last edited on: 17/Mar/2016, at 16:48

Note: If your installed version is 2.0.2608 or newer, 2.1.2608 or newer, 2.2.2608 or newer, or 2.3.xxxx you won't have the described problem.

PROBLEM

The error that prevents any user to login to the IIS server appears in i4 as:

Server Error in '/I4' Application.

[C:\Windows\Microsoft.NET\Framework64\v.X.X.xxxxx\Temporary ASP.NET Files\i4\...

Strong name signed assemblies must specify a public key in their InternalsVisibleTo declarations.

The error appears in GN4 as:

An error occurred trying to login: 'The type initializer for '<StartupCode$GNQuery>.$TeraDP.GN4.GNQuery.Parser' threw an exception (ERR0353).

CAUSE

This is due to the incompatibility of two DLLs used by GNQuery with .Net 4.6. The problem is triggered by the Windows security updates, that break the FParsec.dll and FParsecCS.dll, belonging to the GN4 builds prior to 2608. Such updates might have been installed automatically around Feb, 16 2016, or manually at any time later.

SOLUTION FOR THE GN4 SYSTEMS VERSION 2.0.2607, 2.1.2607,2.2.2607 OR OLDER BUILDS OF THOSE VERSIONS

1.For the 64-bit servers, download the GN4bin_64.zip. For 32-bit servers, download the GN4bin.zip.

2.From the ZIP archive, extract FParsec.dll and FParsecCS.dll, and then store them in a temporary folder.

3.Search the GN4 server disk for all the occurrences of the FParsec.dll and FParsecCS.dll, and make a note of each folder where you find them.

4.Replace the existing files FParsec.dll and FParsecCS.dll, in each and every folder on the server, with the ones stored in a temporary folder in the step 2.

5.Repeat the step 4 on all the servers, live or standby.

6.Restart all GN4 servers.

SOLUTION FOR THE GN4 SYSTEMS 1.6 AND 1.5

Uninstall the security updates dated around Feb, 16 2016.