We're seeing this error when generating PDFs using Winnovative's HtmlToPdfConverter:
System.Exception
Message: The crypto provider is null
wnvinternal.ᤐ.ᢀ(String A_0):348
wnvinternal.ᤑ.ᜒ(String A_0):165
wnvinternal.ᤑ.ᜀ(String A_0):165
Winnovative.HtmlToPdfConverter.ᜀ(String A_0, String A_1, String A_2, String A_3, Boolean A_4):1489
Winnovative.HtmlToPdfConverter.ᜀ(Stream A_0, String A_1, String A_2, String A_3, String A_4, Boolean A_5)
Winnovative.HtmlToPdfConverter.ᜁ(String A_0, String A_1, String A_2, String A_3, Boolean A_4):62
Winnovative.HtmlToPdfConverter.ConvertHtml(String htmlString, String baseUrl, String internalLinksBaseUrl)
Winnovative.HtmlToPdfConverter.ConvertHtml(String htmlString, String baseUrl)
What can I do to fix the problem?
Background
We have two "production" URLs: one of them is https://ourdomain.com, the other is https://api.ourdomain.com. These are IIS sites served by two separate VMs. Identical code is deployed to each, and almost-identical configuration.
There are some difference between the sites. API has an IP allowlist set on the firewall. API has 16GB of memoray compared to 32GB on non-API.
The user browses to a URL which returns a PDF file. On the non-API site, it works as intended: the PDF is available for download. On the API site, the PDF is not available for download - instead we see this error.
I've used the Nartac configuration tool to make sure the protocols and cipher suites are identical between the two servers.
We discovered the problem out of pure luck. A separate part of our system was also throwing exceptions, but those exceptions were a bit more explicit, and mentioned the servier's FIPS setting. After disabling FIPS on the server in question, and rebooting so that the new setting was in effect, the PDFs started working again.