59
votes

I have added a new Web API project. I install Cors

PM> Install-Package Microsoft.AspNet.WebApi.Cors -Pre

Then when I run my project, I get this error:

The type initializer for 'System.Web.Http.GlobalConfiguration' threw an exception.

This is my inner exception:

{"Attempt by method 'System.Web.Http.GlobalConfiguration..cctor()' to access field 'System.Web.Http.GlobalConfiguration.CS$<>9__CachedAnonymousMethodDelegate2' failed."}

3

3 Answers

100
votes

I came across the same issue and found a blog post on it. According to this blog post if you use the release candidate it should fix the error

Install-Package Microsoft.AspNet.WebApi -IncludePrerelease

From here: http://wp.sjkp.dk/webapi-and-cors-enabled-rest-services/

This worked for me :D

In other words, it was fixed in 5.1.0-rc1 release.

37
votes

I had this problem using NET 4.6.1 and after may hours of research removing this from web.config finally fixed the issue:

<runtime>
<dependentAssembly>
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
     <bindingRedirect oldVersion="0.0.0.0-4.1.1.0" newVersion="4.1.1.0" />
   </dependentAssembly>
</runtime>
1
votes

I had the same problem. Definitely "Cors" doesn't work to me!

What I did to solve my problem with Cross Domain in WebApi it was remove Cors and change my web.config

If you insert the following lines inside your web.config, you'll have an WebApi with Cross Domain enabled.

<system.webServer> <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, DELETE" /> </customHeaders> </httpProtocol> </system.webServer>