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

Posted

技术标签:

【中文标题】如何解决错误“尝试通过安全透明方法\'System.Web.Http.GlobalConfiguration.get_Configuration()【英文标题】:How do I resolve the error "Attempt by security transparent method 'System.Web.Http.GlobalConfiguration.get_Configuration()如何解决错误“尝试通过安全透明方法'System.Web.Http.GlobalConfiguration.get_Configuration() 【发布时间】:2013-08-30 20:18:15 【问题描述】:

我创建了一个包含两个项目的解决方案:一个 MVC 4 和一个类库。该解决方案编译并运行良好。然后我 install-package '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 引用,并且我无法将其恢复为工作状态。

我在什么包中,如何在 vanilla MVC4 应用程序中启用 WebApi OData?

【问题讨论】:

【参考方案1】:

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

install-package 'Microsoft.AspNet.WebApi.OData

没有-pre 选项

【讨论】:

【参考方案2】:

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

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

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

我的建议是使用“Empty ASP.NET web application”模板而不是 MVC 4.0 模板。

【讨论】:

这让我走上了正轨。我最终做了 Install-Package Microsoft.AspNet.WebApi -Pre 并且很开心。 在 VS2012 Web API 模板上安装 Microsoft.AspNet.WebApi.Cors 并编辑 WebApiConfig.Register 后出现相同的错误。升级到VS2013模板后一切正常。【参考方案3】:

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

    从 NuGet 安装最新的 WebAPI

    -或-

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

【讨论】:

【参考方案4】:

我在 VS 的包管理器控制台中运行了“update-package Microsoft.AspNet.WebApi”,效果非常好。

【讨论】:

【参考方案5】:

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

【讨论】:

【参考方案6】:

我遇到了同样的问题,解决方法是使用与 Syste.Web.Http 相同版本的“System.Web.Http.WebHost”,即 5.2.6

【讨论】:

【参考方案7】:

如果上述答案中不存在此软件包,则可以安装它

安装包 Microsoft.AspNet.WebApi

【讨论】:

以上是关于如何解决错误“尝试通过安全透明方法'System.Web.Http.GlobalConfiguration.get_Configuration()的主要内容,如果未能解决你的问题,请参考以下文章

c#Ajax 的错误,应该如何解决?

"SQL SERVER,错误:207" 如何解决

如何解决“错误:输入中的语法错误(1)。”

如何解决此分段错误:以下代码的 11 错误?

如何解决子重复错误?

Ftp 错误代码 550,如何解决