IIS托管时的AspNetCore SignalR集线器PathString

时间:2019-10-15 12:13:02

标签: asp.net-core-signalr

这通常是我们在Startup.cs文件中设置中心路由的方式

app.UseSignalR(routes =>
            {
                routes.MapHub<UserEventsHub>("/usereventshub");
            });

如果我们在控制台中运行应用程序,或者在IIS下作为网站的根目录运行,则所有这些都很好。如果我们在子域下的IIS中托管,则客户端应用程序找不到集线器。

我已经检查了文档,并且在任何地方都没有提及。我假设我可以像这样更改PathString

app.UseSignalR(routes =>
            {
                routes.MapHub<UserEventsHub>("<URL-WITH-SUB-DOMAIN>/usereventshub");
            });

很明显,我可以使用appsettings中的设置更改字符串的值。但是我想找出最佳做法是什么?有没有一种方法可以使Signalr检测到它被托管为子域并将其视为根。由于某种原因,我假设PathString相对于webapp根目录。显然不是

摘要 AspNetCore 3.0

将应用托管在serverName.com下时,会找到中心网址。

当托管在serverName.com/subdomain下时,找不到集线器

0 个答案:

没有答案