为什么 Blazor 使用 post 而不是 WebSockets?

Why is Blazor using post instead of WebSockets?

我有一个 Blazor 服务器应用程序。当我 运行 Visual Studio 中的应用程序时,我在浏览器控制台中看到此消息:

 WebSocket connected to wss://localhost:44329/_blazor?id=HX5t9UdbZwj35PkMxV3Fkw.

所以在我看来 SignalR 正在按预期工作。在“网络”选项卡上,我看到 signalR 按预期工作并显示消息:

但是,现在我将应用发布到IIS。该应用程序运行良好。但是,如果我查看浏览器控制台,我将不再看到正在连接的 WebSocket。我在网络选项卡中看到的内容如下所示:

Request URL: https://blazor/_blazor?id=O_acVtnuEIOjlRAosu1YFg
Request Method: POST

有很多这样的,比如每秒 1 个。

看来 SignalR 不再被使用了。

这是为什么?我需要做什么才能确保使用 SignalR?

确保已在 IIS 上启用 WebSockets。以下是简要概述:

https://docs.microsoft.com/en-us/iis/get-started/whats-new-in-iis-8/iis-80-websocket-protocol-support