【发布时间】:2020-04-22 18:00:34
【问题描述】:
我创建了一个应用程序,并试图通过 SignalR 连接到后端。
ASP.NET Core 3.1 后端托管在 IIS 中以便于开发。
在客户端调用 StartAsync 方法成功协商,但在 GET 上永远挂起:
GET http://localhost:81/signalr?id=W3F2TRVrx_lxZoinHzTzmA
StartAsync() 调用无法返回。
这只发生在 IIS 上。当我启动应用程序自托管时,它就可以工作了。
WebAPI 的其余部分也适用于 IIS。只是 SignalR 无法连接。
【问题讨论】:
-
您是否安装了 IIS 虚拟主机捆绑包?当您将应用程序从 IIS express 部署到 IIS 时,应用程序池标识也会更改,所以您是否尝试将应用程序池标识更改为本地系统等帐户?如果您需要找到根本原因,那么您可能需要检查事件日志或转储文件以找到挂起调用堆栈。所以我们会知道线程中的待处理内容以及问题所在。
-
在哪里可以找到虚拟主机捆绑包? Windows 可选功能?还是网络 PI?
-
dotnet.microsoft.com/download/dotnet-core/3.1。当您需要以进程内模型托管 asp.net 核心应用程序时,需要 Web 托管捆绑包。
-
因为我在工作,所以现在不能尝试,但这是否意味着我根本无法托管 core31 应用程序?我的应用程序的其余部分按预期工作,对控制器方法的调用工作正常。
-
所以我安装了该模块,但结果相同:除 SignalR 连接外,一切正常。
标签: c# asp.net-core iis signalr