为了账号安全,请及时绑定邮箱和手机立即绑定

未找到 Signalr 集线器 404

未找到 Signalr 集线器 404

C#
Cats萌萌 2021-11-28 16:39:09
我正在尝试将 Signalr 集成到我的 Web 表单项目中。首先,使用 nugget 添加引用Microsoft.AspNet.SignalR.Client;Microsoft.AspNet.SignalR.Core;Microsoft.AspNet.SignalR.System.Web;微软.Owin;Microsoft.Owin.Host.SystemWeb;Microsoft.Owin.Security;欧文我的创业班:[assembly: OwinStartup(typeof(ns.App_Code.Startup))]namespace ns { public class Startup    {        public void Configuration(IAppBuilder app)        {            app.MapSignalR();        }    }}我的枢纽:public class PositionHub : Hub{    static ConcurrentDictionary<int, List<string>> connectedUsers = new ConcurrentDictionary<int, List<string>>();    public override Task OnConnected()    {        return base.OnConnected();    }}最后,客户端:   <script type="text/javascript" src="Scripts/jquery-2.2.4.min.js"></script>    <script src="Scripts/jquery.signalR-2.3.0.min.js"></script>    <script src="<%= ResolveUrl("~/signalr/hubs") %>" type="text/javascript"></script>    <script type="text/javascript">        $(function() {            var logger = $.connection.positionHub;            logger.start();     });    </script> 此外,添加到 web.config 如下:<add key="owin:AutomaticAppStartup" value="true" /> 和  <system.webServer>    <validation validateIntegratedModeConfiguration="false" />    <modules runAllManagedModulesForAllRequests="true" />当我运行应用程序时,它给出了 404 错误:GET http://localhost:41363/signalr/hubs 404 (Not Found)这不是我第一次使用信号器,但这是我第一次遇到这个问题,并且已经努力了几个小时来解决它,但没有运气......
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

我注意到您没有安装以下 NuGet 包,这些包在将 SignalR 与 Javascript 集成时是必需的。

  • Microsoft.AspNet.SignalR
    此包引入了在 ASP.NET 应用程序中使用 SignalR 所需的服务器组件和JavaScript 客户端

  • Microsoft.AspNet.SignalR.JS ASP.NET SignalR 的
    脚本客户端
    这个是由上面的 Microsoft.AspNet.SignalR 自动包含的。)

编辑

通过下面的评论,我们发现 OP 的web.config文件包含一些拦截/signalr/hubsurl 的url 重写规则。

添加一个规则来防止这个 url 被重写解决了这个问题。

<rule name="signalR" enabled="true" stopProcessing="true"> 
    <match url="^signalr.*" /> <action type="None" /> 
    </rule>


查看完整回答
反对 回复 2021-11-28
?
互换的青春

TA贡献1797条经验 获得超6个赞

修复启动类命名空间

namespace ns

成为

namespace TeltonikaSiteWebApplication.App_Code


查看完整回答
反对 回复 2021-11-28
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

重写规则与 web 配置冲突它与信号器冲突。我需要添加一个新的以使其工作。. 感谢@pfx 的指导。


查看完整回答
反对 回复 2021-11-28
  • 3 回答
  • 0 关注
  • 239 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信