【问题标题】:Ambiguous error when calling app.UseWebSockets调用 app.UseWebSockets 时出现模棱两可的错误
【发布时间】:2017-05-04 21:31:55
【问题描述】:

我正在尝试通过本教程在 .NET Core 中使用 Web 套接字:https://zbrad.github.io/tools/wscore/

当我需要在我的 Startup.cs 类中进行此调用时遇到问题:

app.UseWebSockets();

我在尝试构建时收到此错误:

以下方法或属性之间的调用不明确: 'Microsoft.AspNetCore.Builder.WebSocketMiddlewareExtensions.UseWebSockets(Microsoft.AspNetCore.Builder.IApplicationBuilder)' 和 'Microsoft.AspNetCore.Builder.WebSocketMiddlewareExtensions.UseWebSockets(Microsoft.AspNetCore.Builder.IApplicationBuilder)'

我根本不知道问题出在哪里,这是我在 project.json 文件中的依赖项:

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.AspNetCore.WebSockets": "1.0.1",
    "Microsoft.AspNetCore.WebSockets.Server": "0.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.1"
  }

有人知道这个奇怪的模棱两可的错误是什么吗?它引用了相同的命名空间。

【问题讨论】:

    标签: c# asp.net-core


    【解决方案1】:

    避免混合同一个库的多个版本。通常,这不会发生,因为您最终会使用新版本或旧版本的库。但是当程序集名称更改时(即,正如 ASP.NET Core 从 RC1 到 RC2 时所做的那样,程序集从 Microsoft.AspNet.* 更改为 Microsoft.AspNetCore,那么您也会得到不同的包名称,并且可以引用这两个结果在上面的错误中。

    Microsoft.AspNetCore.WebSockets.Server 是 ASP.NET Core 1.0 的过时版本,在 1.1 版本中已重命名为 Microsoft.AspNetCore.WebSockets,您可以在 github 存储库中看到。

    Version 1.0

    • Microsoft.AspNetCore.WebSockets.Client
    • Microsoft.AspNetCore.WebSockets.Protocol
    • Microsoft.AspNetCore.WebSockets.Server

    Version 1.1

    • Microsoft.AspNetCore.WebSockets

    你有两个选择:

    1. 继续使用 ASP.NET Core 1.0(即如果您有使用 LTS 版本的要求)并使用 Microsoft.AspNetCore.WebSockets.Server 0.1.0 并删除 Microsoft.AspNetCore.WebSockets
    2. 升级到 ASP.NET Core 1.1 并移除 Microsoft.AspNetCore.WebSockets.Server,因为 Microsoft.AspNetCore.WebSockets 1.0.1 需要 ASP.NET Core 1.1(至少 Microsoft.AspNetCore.Http.Extensions

    【讨论】:

    • 我基本上从我的包中删除了 Microsoft.AspNetCore.WebSockets.Server 并解决了错误。
    【解决方案2】:

    看看你的cs文件,你可能使用了两个具有相同方法定义的命名空间

    【讨论】:

      猜你喜欢
      • 2013-01-18
      • 1970-01-01
      • 2015-09-11
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-21
      相关资源
      最近更新 更多