无法获取属性'chatHub'的值:object为null或undefined

时间:2014-02-07 13:01:38

标签: signalr

我有一个网络应用程序,我整合SignalR聊天,但我收到错误 “无法获取属性'chatHub'的值:对象为null或未定义”

以下是详细信息......

ASP.Net UserControl中的

<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...
    }
}

我怎样才能让它发挥作用? 感谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:-1)

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