【问题标题】:SignalR version compatability (StatusCode: 405 'Method Not Allowed')SignalR 版本兼容性(状态代码:405 '方法不允许')
【发布时间】:2018-03-07 23:51:08
【问题描述】:

我目前正在处理的 SignalR 项目存在问题。我正在尝试使用 .Net Core 构建服务器,并使用传统的 .Net(框架 4.6.1)构建客户端。但是服务器和客户端似乎不兼容。

我遇到的最后一个问题是 StatusCode: 405, ReasonPhrase: 'Method Not Allowed'。我在GitHub 上找到了一个答案,指出版本之间存在许多重大更改。

查看可用的 NuGet 包版本,我更加困惑。对于 .Net Core 服务器,我使用的是 1.0.0-preview1-final。还有一个 1.0.0-alpha2-final 可用,但我不知道 'alpha' 是比 'preview' 新还是旧。

在客户端,我使用的是 2.2.2 版本,有多种版本可供选择,我尝试了最旧和最新的版本,但两个版本都出现相同的“方法不允许”错误。

错误在客户端,在服务器端,我的断点甚至没有命中,所以也可能是 Owin/iis 问题。

是否有任何图表可以映射 SignalR 客户端和服务器版本的兼容性?我想这将是向前迈出的一大步。

【问题讨论】:

    标签: signalr version signalr-hub signalr.client asp.net-core-signalr


    【解决方案1】:

    您不能将 .NET Core 1.x 与旧客户端(1.x 或 2.x)混合使用。您需要决定哪个是最适合您的选择,但您需要在 CLIENT 和 SERVER 之间实现相同的兼容版本。

    查看link 了解更多详情,但本质上是:

    发生了什么变化?

    我们为 SignalR for ASP.NET Core 添加了许多新功能,但我们 还决定取消对某些现有功能的支持或 改变他们的工作方式。这样做的后果之一是 SignalR for ASP.NET Core 与以前版本的 SignalR 不兼容。 这意味着您不能将旧服务器用于新客户端或将旧客户端用于新服务器。

    【讨论】:

    • 该文档没有说明的是兼容的版本。最新的 NPM 包 (npmjs.com/package/@aspnet/signalr-client) 说 '1.0.0-alpha2-final 是 5 个月前发布的 2 个版本中的最新版本',而 aspnetcore 版本 (nuget.org/packages/Microsoft.AspNetCore.SignalR) 是 '1.0.0-preview1-final ' 发布于 9 天前
    • 我认为他们的 GitHub 页面 (github.com/aspnet/SignalR) 澄清了这一点,正如它在 Packages 下所说的: 注意:用于 JavaScript 的 SignalR 客户端库的先前预览被命名为 @aspnet/signalr-client。从预览版 1 开始,此功能已被弃用。
    • 啊!我应该在开始之前问...谢谢。
    • 我知道问题会因为太多“谢谢”而被锁定......但太糟糕了!谢谢!
    • 他们为什么不调用 .Net Core 3.0 版本,而不是从 1.0 开始。我还是很失望。这意味着我们不能将 .Net Core 用于新服务,因为我们现有的应用程序(将成为客户端)不是 .Net Core 应用程序。是否有人致力于以任何一种方式进行移植,还是我必须在放弃 SignalR 或 .Net Core 以获取新服务之间做出选择?
    猜你喜欢
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 2020-04-29
    • 2021-12-20
    • 2019-11-07
    • 2017-06-15
    • 2018-10-14
    • 2021-06-04
    相关资源
    最近更新 更多