【问题标题】:Unable to get value of the property 'chatHub': object is null or undefined无法获取属性“chatHub”的值:对象为空或未定义
【发布时间】:2016-04-25 03:02:26
【问题描述】:

我有一个集成 SignalR 以进行聊天的 Web 应用程序,但出现错误 "无法获取属性 'chatHub' 的值:对象为 null 或未定义"

以下是详细信息...

在 ASP.Net 用户控件中

<link rel="stylesheet" href="/Css/JQueryUI/themes/base/jquery.ui.all.css">
<link href="../Classes/SignalRChat/Css/ChatStyle.css" rel="stylesheet" />
<link href="../Classes/SignalRChat/Css/JQueryUI/themes/base/jquery.ui.all.css" rel="stylesheet" />
<link href="Css/gradients.css" rel="stylesheet" />
<link href="Css/MainCss.css" rel="stylesheet" />

<script src="Scripts/ui/jquery.ui.core.js"></script>
<script src="Scripts/ui/jquery.ui.widget.js"></script>
<script src="Scripts/ui/jquery.ui.mouse.js"></script>
<script src="Scripts/ui/jquery.ui.draggable.js"></script>
<script src="Scripts/ui/jquery.ui.resizable.js"></script>
<script src="Scripts/jquery.signalR-2.0.2.min.js"></script>

<script src="Scripts/jquery-1.8.2.min.js"></script>
<script src="Scripts/jquery.signalR-2.0.2.min.js"></script>
<script src="signalr/hubs"></script>

在 JavaScript 中

<script type="text/javascript">

$(function () {

    setScreen(false);

    // Declare a proxy to reference the hub. 
    var chatHub = $.connection.chatHub; //THIS GETS THE ERROR

在我的创业公司

using Microsoft.Owin;
using Owin;

[assembly: OwinStartup(typeof(Akr.Web.Classes.SignalRChat.SignalRChatStartup))]

namespace Akr.Web.Classes.SignalRChat
{
    public class SignalRChatStartup
    {
        public void Configuration(IAppBuilder app)
        {
            app.MapSignalR();
        }
    }
}

在我的中心

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.SignalR;

namespace Akr.Web.Classes.SignalRChat
{
    [CLSCompliant(false)]
    public class ChatHub : Hub
    {
        //... some methods...
    }
}

我怎样才能让它工作? 谢谢

【问题讨论】:

    标签: signalr


    【解决方案1】:

    确保在 jQuery 脚本之后只包含一次 jquery.signalR-*.min.js 脚本。

    还要确保服务器使用来自“signalr/hubs”的脚本进行响应。如果您收到 404,也许您应该从“/signalr/hubs”加载脚本(注意非相对路径)。

    最后,确保你的内联 JS 出现在 HTML 中的 jQuery/SignalR 相关脚本之后。

    这里有更多故障排除文档:http://www.asp.net/signalr/overview/signalr-20/troubleshooting-and-debugging/troubleshooting#other

    【讨论】:

      【解决方案2】:

      我认为解决方案可能与Cannot read property 'chatHub' of undefined SignalR Hub 上发布的相同,请检查您是否拥有 app.MapSignalR();在 Startup.cs 类中。查看更多here

      【讨论】:

        猜你喜欢
        • 2012-06-11
        • 2013-04-24
        • 2023-03-25
        • 2014-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多