【发布时间】:2019-06-17 08:58:32
【问题描述】:
我在 kubernetes 服务上有 dotnet core signalR 应用程序。最重要的是,让我们加密入口服务为我提供 SSL 证书。
我可以在 Let's encrypt 证书下获取网站,一切似乎都有效。
如果我想通过 wss 协议连接 signalR,则每 2 秒断开一次连接。
错误是:
{"error":"Handshake was canceled."}
The connection was terminated cleanly with status code 1000 (NORMAL).
服务器日志是:
info: Microsoft.AspNetCore.Hosting.Internal.WebHost[1]
Request starting HTTP/1.1 GET http://DOMAIN/ChatHub
dbug: Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionManager[1]
New connection XPqUHoK9b4PAeF_bKwQtIg created.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionDispatcher[4]
Establishing new connection.
dbug: Microsoft.AspNetCore.SignalR.HubConnectionHandler[5]
OnConnectedAsync started.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[1]
Socket opened using Sub-Protocol: '(null)'.
dbug: Microsoft.AspNetCore.SignalR.HubConnectionContext[2]
Handshake was canceled.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[7]
Waiting for the client to close the socket.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.Transports.WebSocketsTransport[2]
Socket closed.
dbug: Microsoft.AspNetCore.Http.Connections.Internal.HttpConnectionManager[2]
Removing connection XPqUHoK9b4PAeF_bKwQtIg from the list of connections.
应用程序版本:
netcoreapp2.2
Microsoft.AspNet.SignalR -v 2.4.0
我也尝试过纯 websocket 连接,但它是一样的。我该如何解决这个问题?
PS:如果我为 kestrel 服务器定义物理 SSL 证书,它就可以工作。
【问题讨论】:
标签: asp.net-core kubernetes .net-core signalr lets-encrypt