web-dev-qa-db-fra.com

L'initialiseur de type pour 'System.Web.Http.GlobalConfiguration' a levé une exception

J'ai ajouté un nouveau projet d'API Web. J'installe Cors

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

Ensuite, lorsque j'exécute mon projet, j'obtiens cette erreur:

L'initialiseur de type pour 'System.Web.Http.GlobalConfiguration' a levé une exception.

Ceci est mon exception intérieure:

{"La tentative de la méthode 'System.Web.Http.GlobalConfiguration..cctor ()' pour accéder au champ 'System.Web.Http.GlobalConfiguration.CS $ <> 9__CachedAnonymousMethodDelegate2' a échoué."}

55
user1968030

Je suis tombé sur le même problème et y ai trouvé un article de blog. Selon ce billet de blog, si vous utilisez la version candidate, cela devrait corriger l'erreur

Install-Package Microsoft.AspNet.WebApi -IncludePrerelease

À partir d'ici: http://wp.sjkp.dk/webapi-and-cors-enabled-rest-services/

Cela a fonctionné pour moi: D

En d'autres termes, il a été corrigé dans 5.1.0-rc1 Libération.

99
Adween

J'ai eu ce problème en utilisant NET 4.6.1 et après des heures de recherche, le supprimer de web.config a finalement résolu le problème:

<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>
25
FlimFlam Vir

J'ai eu le même problème. Certainement "Cors" ne fonctionne pas pour moi!

Ce que j'ai fait pour résoudre mon problème avec Cross Domain dans WebApi, c'était de supprimer Cors et de changer mon web.config

Si vous insérez les lignes suivantes dans votre web.config, vous aurez un WebApi avec Cross Domain activé.

<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>

1
Stephan