如何解决错误"尝试通过安全透明方法'System.Web.Http.GlobalConfiguration.get_Configuration()



我创建了一个包含两个项目的解决方案:MVC 4和类库。该解决方案编译并运行良好。然后我安装包"Microsoft.AspNet.WebApi.OData-pre"以引入OData WebApi功能。当我这样做时,我在运行时会得到以下错误:

安全透明方法"System.Web.Http.GlobalConfiguration.get_Configuration()"尝试访问安全关键类型"System.Web.Http.HttpConfiguration"失败。

当WebApiConfig.Register(GlobalConfiguration.Configuration)在Global.asax 中运行时

一旦我这样做了,卸载软件包似乎并不能解决问题。它显然删除了OData组件,但随后留下了导致这种情况的任何程序集。使用-RemoveDependencies删除库中的所有WebApi引用,我无法将其恢复到工作状态。

我到底在哪个软件包中?如何在普通的MVC4应用程序中启用WebApi OData?

给定版本的WebAPI在程序集上不匹配。我的失败是因为我引用了一个不匹配的System.Web.Http.WebHost版本。所以你可以。。。

  1. 从NuGet 安装最新的WebAPI

    -或-

  2. 确保所有Microsoft.AspNet.WebApi.*软件包都在同一版本的上

我在VS的package Manager控制台中运行了"更新包Microsoft.AspNet.WebApi",工作起来很有魅力。

如果您从模板创建了一个MVC 4应用程序,那么您正在安装Web API 4.0。如果你使用

install-package 'Microsoft.AspNet.WebApi.OData -pre

您将依赖于ASP.NET Web API 5.0 rc。

我的建议是使用"空ASP.NET web应用程序"模板,而不是MVC 4.0模板。

我遇到了同样的问题,修复方法是使用与Syste.Web.Http相同版本的"System.Web.Http.WebHost",即5.2.6

您是否需要web API OData的预发布版本?如果是这样,您需要更新所有其他web API包以匹配该版本。如果没有,就做吧,

install-package 'Microsoft.AspNet.WebApi.OData

没有-pre选项

如果从上面的答案来看这个包不存在,你可以安装它

安装程序包Microsoft.AspNet.WebApi

我遇到了问题,我注意到,以前的服务器代码是用发布模式构建的,我正在上传用调试模式构建的代码。所以,我换成了发布模式,然后问题就解决了。

相关内容

最新更新