首先,我对signalR了解甚少。我在努力学习,我只是在胡闹。
运行在.NET核心3.1上。
我有两台机器:
我从开始使用SignalR创建了聊天应用程序。
如果我把它放在PC1上的IIS中,一切都很好。SignalR连接已经建立,我可以从PC1、PC2 Ubuntu、PC2 Win10 VM甚至我的手机发送消息。网络上的任何设备都可以很好地连接到集线器,而不存在身份验证。
如果我添加Cookie身份验证加载站点将重定向到登录页面,登录将成功,用户将被重定向回主索引页面。
但是,只有属于域一部分的计算机才能在登录后建立SignalR连接。这意味着PC1可以登录并建立signalR连接并发送消息。
PC2 ubuntu可以登录,但在尝试建立SignalR连接时会出现未经授权的错误。
PC2 ubuntu/Win10 10 VM (在域上)可以登录,但在试图建立SignalR连接时会出现未经授权的错误。
用我的手机我也会犯同样的错误。
如果作为域的一部分的工作同事在他的机器上加载站点,他可以登录并建立一个工作的SignalR连接。
当身份验证处于活动状态时,任何不属于域的设备都不能建立可工作的SignalR连接。
当尝试在登录后建立到集线器的连接时,任何不属于域的设备都会出现未经授权的401错误。
域中的任何设备都可以登录并建立工作的SignalR连接,没有错误。
代码似乎很好用。我想这是IIS的问题。我的IIS设置基于以下内容:https://damienbod.com/2018/09/21/deploying-an-asp-net-core-application-to-windows-iis/
就代码而言,这一切似乎都工作正常,运行良好,但是当身份验证处于活动状态时,不属于域的设备不能建立signalR连接。
如果没有身份验证,网络上的任何设备都可以连接到集线器。
再一次,这只是我在胡闹,试着学习我能做什么或者不能做什么,或者应该做什么,或者不应该做什么。是的,我经常在谷歌上搜索。
我的启动代码:

登录代码:

中心代码:

发布于 2019-12-13 04:35:05
我让它发挥作用..。发布这篇文章,以防它可能会帮助别人,并给他们很多天的时间,让他们一事无成:
事实证明,Windows域不起作用。如果我在应用程序中激活了授权,网络上的任何设备/机器都不能通过网络建立signalr连接。只有运行IIS的机器才能打开应用程序,登录,并建立signalR连接并按预期工作。
昨天,我碰巧看到了一段关于在IIS和.net下向IIS发布.net核心应用程序的视频,这个家伙在IIS下创建了一个新站点,而不是在IIS安装附带的默认站点下创建一个新应用程序。
决定试一试,而且可以肯定的是,该应用程序在IIS.中的一个新站点下托管时就开始工作了。
我不知道默认网站上是否有安装问题.我是唯一使用此IIS安装的人,而且我知道我没有更改任何默认的网站设置。win10安装也只有大约6个月的历史。
我想在我们工作的Win10笔记本电脑上进行新的IIS安装测试,看看是否会出现同样的问题.我很怀疑,但无论如何还是值得一查的。
https://stackoverflow.com/questions/59261940
复制相似问题