这通常是我们在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下时,找不到集线器