web-dev-qa-db-ja.com

IIS)の下でABPでAspNetCore.SignalRを使用すると、接続ハンドシェイクエラーが失敗しました

私の環境

  • .NetCore SDk-2.1.300
  • Microsoft.AspNetCore.SignalR-1.0.0
  • IIS-Windows Server2016のバージョン10.0.12393.0

AspNetCore.SignalRのサンプルコード

AspNetCore.SignalRのAbp

  • ABPWebサイトからABPテンプレートコードをダウンロードします
  • .netコアSDKを.netコア2.1にアップグレードします
  • Nugetパッケージをアップグレードする
  • 上記の手順に従って、サンプルのAspNetCore.SignalRチャットコードをプロジェクトに追加します。
  • VisualStudioで正常に実行する

問題は、サーバー(上記のサーバーと同じ)に公開して実行すると、エラーがスローされることです-AspNetCore.SignalR.HubConnectionContext-接続ハンドシェイクに失敗しました。

私はそれを研究しましたが、解決策が得られませんでした。問題が何であるかを調べるのを手伝っていただけませんか?

プロジェクトをgithubにプッシュしました: https://github.com/lcyhjx/AbpExample 、プルして実行できます(AbpExample.Web.Hostを実行するだけです)。 Visual Studioでは正常に動作しますが、IISでは失敗しました。

エラーの詳細:

  • 情報:「/ chatHub」を「 http:// localhost:6011/chatHub 」に正規化しています。
  • 情報:ws:// localhost:6011/chatHub?id = 2zix_nPHODwLEv2p_4VCAw 'に接続されたWebSocket
  • エラー:接続が切断され、エラーが発生しました 'エラー:サーバーがハンドシェイクエラーを返しました:接続ハンドシェイク中に予期しないエラーが発生しました。'.

enter image description here

7
Lakin Lu

私はこの問題に対処しました。これはコードの問題です。私のコードでは、

HandshakeTimeout = TimeSpan.MaxValue;

上記のコードにコメントすると、VSとIISの両方ですべて正常に機能します。

4
Lakin Lu