gpt4 book ai didi

asp.net - IApplicationBuilder 存在于 Microsoft.AspNet.Http.Abstractions 和 Microsoft.AspNet.Http 中

转载 作者:行者123 更新时间:2023-12-01 12:34:46 27 4
gpt4 key购买 nike

我们在 ASP.NET 5 中进行身份验证时遇到了麻烦。In this security sample ,我们看到了这种东西:

app.Run(async context =>
{
var types = context.Authentication.GetAuthenticationSchemes();
}

初始问题

但是,在我们的项目中,HttpContext 没有Authentication 属性,我们会收到以下错误:

Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException: C:\myApp\Startup.cs(71,46): error CS1061:

'HttpContext' does not contain a definition for 'Authentication' and no extension method 'Authentication' accepting a first argument of type 'HttpContext' could be found (are you missing a using directive or an assembly reference?)

所以,我们查看了源代码,发现它是 here inside the HttpAbstractions assembly .因此,我们将该程序集添加到我们的项目中。

后续问题

不幸的是,我们现在收到以下错误:

Microsoft.Framework.Runtime.Roslyn.RoslynCompilationException: C:\myApp\Startup.cs(43,31): error CS0433:

The type 'IApplicationBuilder' exists in both 'Microsoft.AspNet.Http.Abstractions, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' and 'Microsoft.AspNet.Http, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

问题

很公平。我们如何要求编译器为这个特定类型使用一个程序集而不使用另一个程序集?我们尝试删除 .dnx\packages\Microsoft.AspNet.Http 但它只是在 dnu restore 之后恢复。

最佳答案

正如 ASP.NET 团队所说,您可能已经“跨界”了。确保你是 following the breaking changes并且不包括来自多个 beta 版本的包(例如确保您没有同时引用 beta4beta5 - 最简单的方法检查是在你的 project.lock.json 中搜索它们。)最常见的事故来自使用 .Interfaces 包,因为其中大部分已重命名为 .Abstractions,但是还有其他程序集命名更改(以及删除!)。

更新:

当您无法通过您配置的服务器和您正在运行的 dnvm 版本访问 NuGet 包时,也会出现此错误。 (最近对 dnvm 进行了更新,我必须升级才能使用最新的软件包;似乎即使在单个测试版中,流仍然可以交叉!)让 VS2015 使用特定的 dnvm,可能需要 global.json:

{
"projects": [ "src", "tests" ],
"sdk": {
"version": "1.0.0-beta6-12005"
}
}

关于asp.net - IApplicationBuilder 存在于 Microsoft.AspNet.Http.Abstractions 和 Microsoft.AspNet.Http 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30770408/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com