For a project we are comparing multiple web server options in terms of performance. The project will be using ASP.NET Web API, but the web server will be either
- IIS(using the ASP.NET pipeline)
- IIS(using Microsoft Helios)
- Selfhosting(using the OWIN selfhost)
- Or something else(don’t know what)
I downloaded the required(pre-release) NuGet packages, configured my web project and started the application. But what I saw, was not what I expected:
I was welcomed by the following error message:
:(
Helios failed to start.
The ApplicationStart method threw an exception. Detailed exception information is below.
System.TypeInitializationException: The type initializer for 'Microsoft.Owin.Host.IIS.Security.Algorithms' threw an exception. ---> System.Security.Cryptography.CryptographicException: Unknown error "-1073741275".
at Microsoft.Owin.Host.IIS.Security.Algorithms.CreateSP800108AlgorithmHandle()
at Microsoft.Owin.Host.IIS.Security.Algorithms..cctor()
--- End of inner exception stack trace ---
at Microsoft.Owin.Host.IIS.Security.DataProtection.DataProtectionProvider.CreateImpl(Byte* masterKey, Int32 masterKeyLengthInBytes)
at Microsoft.Owin.Host.IIS.Security.DataProtection.DataProtectionProvider.CreateNew()
at Microsoft.Owin.Host.IIS.Security.DataProtection.HeliosDataProtectionProvider.CreateFactory(IHttpApplication httpApplication, Boolean& requiresApplicationIsolation)
at Microsoft.Owin.Host.IIS.Security.DataProtection.HeliosDataProtectionProvider.CreateDataProtectionProvider(IHttpApplication httpApplication)
at Microsoft.Owin.Host.IIS.OwinApplicationBase.ApplicationStart(IHttpApplication application)
at Microsoft.AspNet.Loader.IIS.HttpApplicationBase.InvokeApplicationStart(IHttpApplication application)
My bad! I didn’t took a look at the prerequisites. You need at least Windows 8 or Windows Server 2012 to use Helios on top of IIS. Although a better error message would have been useful, I have learned that reading the documentation could be helpful