TinyMapper error #530

Closed
opened 2025-12-29 08:29:31 +01:00 by adam · 8 comments
Owner

Originally created by @rmeshksar on GitHub (Jul 19, 2023).

Originally assigned to: @StefH on GitHub.

I created a console application and enabled Admin Interface.
Now when I try to use admin API, I am getting this error:

System.TypeInitializationException: The type initializer for 'WireMock.Util.TinyMapperUtils' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'TinyMapper, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required.

It seams the similar issue that is mentioned here:
https://github.com/WireMock-Net/WireMock.Net/wiki/Could-not-load-file-or-assembly-RestEase

I added Brutal.Dev.StrongNameSigner to the console application.
First I had hard time compiling the project and I had to close and open Visual Studio, and finally when the project got compiled, still I got the same error.

I am using Wiremock .Net 1.5.32

This is the full log:

Mock server started on port:8443
2023-07-19 8:00:42 PM [Info] : By Stef Heyenrath (https://github.com/WireMock-Net/WireMock.Net)
2023-07-19 8:00:42 PM [Debug] : Server settings {
  "Port": 8443,
  "UseSSL": null,
  "HostingScheme": null,
  "StartAdminInterface": true,
  "ReadStaticMappings": true,
  "WatchStaticMappings": null,
  "WatchStaticMappingsInSubdirectories": true,
  "ProxyAndRecordSettings": null,
  "Urls": null,
  "StartTimeout": 10000,
  "AllowPartialMapping": null,
  "AdminUsername": null,
  "AdminPassword": null,
  "AdminAzureADTenant": null,
  "AdminAzureADAudience": null,
  "RequestLogExpirationDuration": null,
  "MaxRequestLogCount": null,
  "CorsPolicyOptions": null,
  "AllowCSharpCodeMatcher": null,
  "AllowBodyForAllHttpMethods": null,
  "AllowOnlyDefinedHttpStatusCodeInResponse": null,
  "DisableJsonBodyParsing": null,
  "DisableRequestBodyDecompressing": null,
  "DisableDeserializeFormUrlEncoded": null,
  "HandleRequestsSynchronously": null,
  "ThrowExceptionWhenMatcherFails": null,
  "CertificateSettings": null,
  "CustomCertificateDefined": false,
  "ClientCertificateMode": 0,
  "AcceptAnyClientCertificate": false,
  "WebhookSettings": null,
  "UseRegexExtended": true,
  "SaveUnmatchedRequests": null,
  "DoNotSaveDynamicResponseInLogEntry": null,
  "QueryParameterMultipleValueSupport": null
}
2023-07-19 8:00:42 PM [Info] : Server using .NET Framework 4.6.1 or higher
2023-07-19 8:00:42 PM [Info] : The Static Mapping folder 'C:\MockServer\bin\Debug\__admin\mappings' does not exist, reading Static MappingFiles will be skipped.
Press any key to stop the server
2023-07-19 8:00:50 PM [Error] : Providing a Response for Mapping 'dafb6c48-6a92-401b-8007-b7fb287588b2' failed. HttpStatusCode set to 500. Exception: System.TypeInitializationException: The type initializer for 'WireMock.Util.TinyMapperUtils' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'TinyMapper, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044)
   at WireMock.Util.TinyMapperUtils..ctor()
   at WireMock.Util.TinyMapperUtils..cctor()
   --- End of inner exception stack trace ---
   at WireMock.Util.TinyMapperUtils.get_Instance()
   at WireMock.Server.WireMockServer.SettingsGet(IRequestMessage requestMessage)
   at WireMock.ResponseProviders.DynamicResponseProvider.ProvideResponseAsync(IMapping mapping, IRequestMessage requestMessage, WireMockServerSettings settings)
   at WireMock.Mapping.ProvideResponseAsync(IRequestMessage requestMessage)
   at WireMock.Owin.WireMockMiddleware.<InvokeInternalAsync>d__9.MoveNext()
2023-07-19 8:00:50 PM [DebugRequestResponse] : Admin[True] {
  "Guid": "88b09893-2829-4821-a01d-f6775dadc672",
  "Request": {
    "ClientIP": "::1",
    "DateTime": "2023-07-19T20:00:50.824846Z",
    "Path": "/__admin/settings",
    "AbsolutePath": "/__admin/settings",
    "Url": "http://localhost:8443/__admin/settings",
    "AbsoluteUrl": "http://localhost:8443/__admin/settings",
    "ProxyUrl": null,
    "Query": {},
    "Method": "GET",
    "Headers": {
      "Connection": [
        "keep-alive"
      ],
      "Accept": [
        "*/*"
      ],
      "Accept-Encoding": [
        "gzip, deflate, br"
      ],
      "Host": [
        "localhost:8443"
      ],
      "User-Agent": [
        "PostmanRuntime/7.32.3"
      ],
      "Postman-Token": [
        "d61474f4-03be-4b8d-bce3-2fd64ccf7f97"
      ]
    },
    "Cookies": {},
    "Body": null,
    "BodyAsJson": null,
    "BodyAsBytes": null,
    "BodyEncoding": null,
    "DetectedBodyType": null,
    "DetectedBodyTypeFromContentType": null
  },
  "Response": {
    "StatusCode": 500,
    "Headers": {
      "Content-Type": [
        "application/json"
      ]
    },
    "BodyDestination": null,
    "Body": null,
    "BodyAsJson": {
      "Guid": null,
      "Status": "The type initializer for 'WireMock.Util.TinyMapperUtils' threw an exception."
    },
    "BodyAsBytes": null,
    "BodyAsFile": null,
    "BodyAsFileIsCached": null,
    "BodyOriginal": null,
    "BodyEncoding": null,
    "DetectedBodyType": 2,
    "DetectedBodyTypeFromContentType": null,
    "FaultType": null,
    "FaultPercentage": null
  },
  "MappingGuid": "dafb6c48-6a92-401b-8007-b7fb287588b2",
  "MappingTitle": null,
  "RequestMatchResult": {
    "TotalScore": 2.0,
    "TotalNumber": 2,
    "IsPerfectMatch": true,
    "AverageTotalScore": 1.0,
    "MatchDetails": [
      {
        "Name": "PathMatcher",
        "Score": 1.0
      },
      {
        "Name": "MethodMatcher",
        "Score": 1.0
      }
    ]
  },
  "PartialMappingGuid": "dafb6c48-6a92-401b-8007-b7fb287588b2",
  "PartialMappingTitle": null,
  "PartialRequestMatchResult": {
    "TotalScore": 2.0,
    "TotalNumber": 2,
    "IsPerfectMatch": true,
    "AverageTotalScore": 1.0,
    "MatchDetails": [
      {
        "Name": "PathMatcher",
        "Score": 1.0
      },
      {
        "Name": "MethodMatcher",
        "Score": 1.0
      }
    ]
  }
}

Originally created by @rmeshksar on GitHub (Jul 19, 2023). Originally assigned to: @StefH on GitHub. I created a console application and enabled Admin Interface. Now when I try to use admin API, I am getting this error: System.TypeInitializationException: The type initializer for 'WireMock.Util.TinyMapperUtils' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'TinyMapper, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. It seams the similar issue that is mentioned here: https://github.com/WireMock-Net/WireMock.Net/wiki/Could-not-load-file-or-assembly-RestEase I added Brutal.Dev.StrongNameSigner to the console application. First I had hard time compiling the project and I had to close and open Visual Studio, and finally when the project got compiled, still I got the same error. I am using Wiremock .Net 1.5.32 This is the full log: ``` Mock server started on port:8443 2023-07-19 8:00:42 PM [Info] : By Stef Heyenrath (https://github.com/WireMock-Net/WireMock.Net) 2023-07-19 8:00:42 PM [Debug] : Server settings { "Port": 8443, "UseSSL": null, "HostingScheme": null, "StartAdminInterface": true, "ReadStaticMappings": true, "WatchStaticMappings": null, "WatchStaticMappingsInSubdirectories": true, "ProxyAndRecordSettings": null, "Urls": null, "StartTimeout": 10000, "AllowPartialMapping": null, "AdminUsername": null, "AdminPassword": null, "AdminAzureADTenant": null, "AdminAzureADAudience": null, "RequestLogExpirationDuration": null, "MaxRequestLogCount": null, "CorsPolicyOptions": null, "AllowCSharpCodeMatcher": null, "AllowBodyForAllHttpMethods": null, "AllowOnlyDefinedHttpStatusCodeInResponse": null, "DisableJsonBodyParsing": null, "DisableRequestBodyDecompressing": null, "DisableDeserializeFormUrlEncoded": null, "HandleRequestsSynchronously": null, "ThrowExceptionWhenMatcherFails": null, "CertificateSettings": null, "CustomCertificateDefined": false, "ClientCertificateMode": 0, "AcceptAnyClientCertificate": false, "WebhookSettings": null, "UseRegexExtended": true, "SaveUnmatchedRequests": null, "DoNotSaveDynamicResponseInLogEntry": null, "QueryParameterMultipleValueSupport": null } 2023-07-19 8:00:42 PM [Info] : Server using .NET Framework 4.6.1 or higher 2023-07-19 8:00:42 PM [Info] : The Static Mapping folder 'C:\MockServer\bin\Debug\__admin\mappings' does not exist, reading Static MappingFiles will be skipped. Press any key to stop the server 2023-07-19 8:00:50 PM [Error] : Providing a Response for Mapping 'dafb6c48-6a92-401b-8007-b7fb287588b2' failed. HttpStatusCode set to 500. Exception: System.TypeInitializationException: The type initializer for 'WireMock.Util.TinyMapperUtils' threw an exception. ---> System.IO.FileLoadException: Could not load file or assembly 'TinyMapper, Version=3.0.1.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. A strongly-named assembly is required. (Exception from HRESULT: 0x80131044) at WireMock.Util.TinyMapperUtils..ctor() at WireMock.Util.TinyMapperUtils..cctor() --- End of inner exception stack trace --- at WireMock.Util.TinyMapperUtils.get_Instance() at WireMock.Server.WireMockServer.SettingsGet(IRequestMessage requestMessage) at WireMock.ResponseProviders.DynamicResponseProvider.ProvideResponseAsync(IMapping mapping, IRequestMessage requestMessage, WireMockServerSettings settings) at WireMock.Mapping.ProvideResponseAsync(IRequestMessage requestMessage) at WireMock.Owin.WireMockMiddleware.<InvokeInternalAsync>d__9.MoveNext() 2023-07-19 8:00:50 PM [DebugRequestResponse] : Admin[True] { "Guid": "88b09893-2829-4821-a01d-f6775dadc672", "Request": { "ClientIP": "::1", "DateTime": "2023-07-19T20:00:50.824846Z", "Path": "/__admin/settings", "AbsolutePath": "/__admin/settings", "Url": "http://localhost:8443/__admin/settings", "AbsoluteUrl": "http://localhost:8443/__admin/settings", "ProxyUrl": null, "Query": {}, "Method": "GET", "Headers": { "Connection": [ "keep-alive" ], "Accept": [ "*/*" ], "Accept-Encoding": [ "gzip, deflate, br" ], "Host": [ "localhost:8443" ], "User-Agent": [ "PostmanRuntime/7.32.3" ], "Postman-Token": [ "d61474f4-03be-4b8d-bce3-2fd64ccf7f97" ] }, "Cookies": {}, "Body": null, "BodyAsJson": null, "BodyAsBytes": null, "BodyEncoding": null, "DetectedBodyType": null, "DetectedBodyTypeFromContentType": null }, "Response": { "StatusCode": 500, "Headers": { "Content-Type": [ "application/json" ] }, "BodyDestination": null, "Body": null, "BodyAsJson": { "Guid": null, "Status": "The type initializer for 'WireMock.Util.TinyMapperUtils' threw an exception." }, "BodyAsBytes": null, "BodyAsFile": null, "BodyAsFileIsCached": null, "BodyOriginal": null, "BodyEncoding": null, "DetectedBodyType": 2, "DetectedBodyTypeFromContentType": null, "FaultType": null, "FaultPercentage": null }, "MappingGuid": "dafb6c48-6a92-401b-8007-b7fb287588b2", "MappingTitle": null, "RequestMatchResult": { "TotalScore": 2.0, "TotalNumber": 2, "IsPerfectMatch": true, "AverageTotalScore": 1.0, "MatchDetails": [ { "Name": "PathMatcher", "Score": 1.0 }, { "Name": "MethodMatcher", "Score": 1.0 } ] }, "PartialMappingGuid": "dafb6c48-6a92-401b-8007-b7fb287588b2", "PartialMappingTitle": null, "PartialRequestMatchResult": { "TotalScore": 2.0, "TotalNumber": 2, "IsPerfectMatch": true, "AverageTotalScore": 1.0, "MatchDetails": [ { "Name": "PathMatcher", "Score": 1.0 }, { "Name": "MethodMatcher", "Score": 1.0 } ] } } ```
adam added the bug label 2025-12-29 08:29:31 +01:00
adam closed this issue 2025-12-29 08:29:31 +01:00
Author
Owner

@StefH commented on GitHub (Jul 19, 2023):

Can you please provide a full working solution / project to show this error?

@StefH commented on GitHub (Jul 19, 2023): Can you please provide a full working solution / project to show this error?
Author
Owner

@rmeshksar commented on GitHub (Jul 20, 2023):

Here is the project:
WireMockIssue.zip

It is a .NET 4.7.1 console application.
I just added WireMock.Net from Nuget and wrote this main function:

static void Main(string[] args)
{
	WireMockServer.Start(new WireMockServerSettings
	{
		Port = 8443,
		StartAdminInterface = true
	});

	Console.WriteLine("Press any key to stop the server");
	Console.ReadLine();
}

Now when I am making a GET request:

localhost:8443/__admin/settings

It throws error which I mentioned.

@rmeshksar commented on GitHub (Jul 20, 2023): Here is the project: [WireMockIssue.zip](https://github.com/WireMock-Net/WireMock.Net/files/12109345/WireMockIssue.zip) It is a .NET 4.7.1 console application. I just added WireMock.Net from Nuget and wrote this main function: ```csharp static void Main(string[] args) { WireMockServer.Start(new WireMockServerSettings { Port = 8443, StartAdminInterface = true }); Console.WriteLine("Press any key to stop the server"); Console.ReadLine(); } ``` Now when I am making a GET request: ``` localhost:8443/__admin/settings ``` It throws error which I mentioned.
Author
Owner

@StefH commented on GitHub (Jul 20, 2023):

I changed to another mapper.

Can you try preview version 1.5.32-ci-17647 ?

https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions

@StefH commented on GitHub (Jul 20, 2023): I changed to another mapper. Can you try preview version `1.5.32-ci-17647` ? https://github.com/WireMock-Net/WireMock.Net/wiki/MyGet-preview-versions
Author
Owner

@rmeshksar commented on GitHub (Jul 21, 2023):

1.5.32-ci-17647 works fine.

Is there anything can be done for RestEase as well.
I had a lot of issues with it and the provided solution did not work for me.

I noticed if I create a console application with .NET 4.7.1 and ONLY install WireMock.Net.RestClient and Brutal.Dev.StrongNameSigner then I still get this error :
'Could not load file or assembly 'RestEase, Version=1.5.7.0, Culture=neutral, PublicKeyToken=null'

But if I install WireMock.Net as well this solution works !

In order to solve it for our project:
First I got RestEase source code and compiled it with signed mode but that did not work.
Then I got the source code of WireMock and removed signed form RestClient project and compiled.
This solution worked and it is fine for me for now but not ideal.

@rmeshksar commented on GitHub (Jul 21, 2023): 1.5.32-ci-17647 works fine. Is there anything can be done for RestEase as well. I had a lot of issues with it and the provided solution did not work for me. I noticed if I create a console application with .NET 4.7.1 and ONLY install WireMock.Net.RestClient and Brutal.Dev.StrongNameSigner then I still get this error : 'Could not load file or assembly 'RestEase, Version=1.5.7.0, Culture=neutral, PublicKeyToken=null' But if I install WireMock.Net as well this solution works ! In order to solve it for our project: First I got RestEase source code and compiled it with signed mode but that did not work. Then I got the source code of WireMock and removed signed form RestClient project and compiled. This solution worked and it is fine for me for now but not ideal.
Author
Owner

@StefH commented on GitHub (Jan 6, 2024):

https://github.com/WireMock-Net/WireMock.Net/pull/1051

@StefH commented on GitHub (Jan 6, 2024): https://github.com/WireMock-Net/WireMock.Net/pull/1051
Author
Owner

@StefH commented on GitHub (Jan 8, 2024):

@rmeshksar
Can you also try this version?
1.5.46-ci-18287

I did replace TinyMapper again with a different Mapper.

(RestEase I'm looking into, but no progress yet)

@StefH commented on GitHub (Jan 8, 2024): @rmeshksar Can you also try this version? 1.5.46-ci-18287 I did replace TinyMapper again with a different Mapper. (RestEase I'm looking into, but no progress yet)
Author
Owner

@StefH commented on GitHub (May 17, 2025):

https://github.com/wiremock/WireMock.Net/pull/1299

@StefH commented on GitHub (May 17, 2025): https://github.com/wiremock/WireMock.Net/pull/1299
Author
Owner

@StefH commented on GitHub (May 17, 2025):

@rmeshksar
Can you try preview version: 1.8.6-ci-110058?

(https://github.com/wiremock/WireMock.Net/wiki/MyGet-preview-versions)

@StefH commented on GitHub (May 17, 2025): @rmeshksar Can you try preview version: `1.8.6-ci-110058`? (https://github.com/wiremock/WireMock.Net/wiki/MyGet-preview-versions)
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/WireMock.Net#530