未找到 Signalr 集线器 404

我正在尝试将 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)


这不是我第一次使用信号器,但这是我第一次遇到这个问题,并且已经努力了几个小时来解决它,但没有运气......


Cats萌萌
浏览 240回答 3
3回答

慕虎7371278

我注意到您没有安装以下 NuGet 包,这些包在将 SignalR 与 Javascript 集成时是必需的。Microsoft.AspNet.SignalR此包引入了在 ASP.NET 应用程序中使用 SignalR 所需的服务器组件和JavaScript 客户端。Microsoft.AspNet.SignalR.JS&nbsp;ASP.NET SignalR 的脚本客户端。(这个是由上面的 Microsoft.AspNet.SignalR 自动包含的。)编辑通过下面的评论,我们发现 OP 的web.config文件包含一些拦截/signalr/hubsurl 的url 重写规则。添加一个规则来防止这个 url 被重写解决了这个问题。<rule&nbsp;name="signalR"&nbsp;enabled="true"&nbsp;stopProcessing="true">&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;<match&nbsp;url="^signalr.*"&nbsp;/>&nbsp;<action&nbsp;type="None"&nbsp;/>&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;</rule>

互换的青春

修复启动类命名空间namespace&nbsp;ns成为namespace&nbsp;TeltonikaSiteWebApplication.App_Code

慕雪6442864

重写规则与 web 配置冲突它与信号器冲突。我需要添加一个新的以使其工作。.&nbsp;感谢@pfx 的指导。
打开App,查看更多内容
随时随地看视频慕课网APP