web-dev-qa-db-ja.com

SignalRバージョンの互換性(StatusCode:405 'Method Not Allowed')

現在取り組んでいる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クライアントとサーバーバージョンの互換性をマッピングできるグラフはありますか?これは大きな前進になると思います。

9
Louis Somers

.NET Core 1.xと古いクライアント(1.xまたは2.x)を混在させることはできません。どちらが最適なオプションかを決定する必要がありますが、CLIENTとSERVERに同じ互換バージョンを実装する必要があります。

詳細については link を確認しますが、基本的には次のとおりです。

何が変更されましたか?

多くの新機能をSignalR for ASP.NET Coreに追加しましたが、既存の機能の一部のサポートを削除するか、機能の動作を変更することも決定しました。この結果の1つは、SignalR for ASP.NET Coreが以前のバージョンのSignalRと互換性がないことです。 つまり、古いサーバーを新しいクライアントで使用したり、古いクライアントを新しいサーバーで使用したりすることはできません。

6
Frank M