Asp.net mvc 4 $.connection.(hubname)未定义。信号机/集线器501(未实施)

Asp.net mvc 4 $.connection.(hubname)未定义。信号机/集线器501(未实施),asp.net-mvc-4,signalr,signalr-hub,Asp.net Mvc 4,Signalr,Signalr Hub,我有一个MVC4应用程序,它有一个注册页面 hub的代码如下所示:- using System; using System.Collections.Generic; using System.Linq; using System.Web; using SignalR.Hubs; [HubName("messageHub")] public class MessageHub : Hub { /// <summary> /// Broadcast the message

我有一个MVC4应用程序,它有一个注册页面

hub的代码如下所示:-

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SignalR.Hubs;

[HubName("messageHub")]
public class MessageHub : Hub
{
    /// <summary>
    /// Broadcast the message to all clients
    /// </summary>
    /// <param name="message">message to be broadcasted</param>
    public void Broadcast(string message, string messagetype, string messagetitle)
    {
        this.Clients.showMessage(message, messagetype, messagetitle);
    }
    public void Getsubscription()
    {

    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Web;
使用信号集线器;
[HubName(“messageHub”)]
公共类MessageHub:Hub
{
/// 
///向所有客户端广播消息
/// 
///广播信息
公共无效广播(字符串消息、字符串消息类型、字符串消息标题)
{
this.Clients.showMessage(消息、消息类型、消息标题);
}
公共订阅()
{
}
}
类似地,JS hub代码是:-

<script type="text/javascript" src="@Url.Content("~/Scripts/json2.js")"></script>
<script src= "@Url.Content("~/Scripts/jquery.signalR-0.5.2.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
<h2>Index</h2>
<script type="text/javascript">
    $(document).ready(function () {
        //Initialize hub
        var hub = $.connection.messageHub;

        // hub.start();
        $.connection.hub.start();
        //Append event to Button
        //hub.broadcast("c","b","a");

    });

</script>

指数
$(文档).ready(函数(){
//初始化集线器
var hub=$.connection.messageHub;
//hub.start();
$.connection.hub.start();
//将事件附加到按钮
//广播中心(“c”、“b”、“a”);
});
现在,在运行之后,将get$.connection.messageHub设置为未定义

其次我的chrome网络秀-

第三,当单击信号器/集线器的启动器时,我得到未实现错误:-

我尝试更改脚本的URL,也作为IIS运行,但无法使其工作。 如果我将脚本保存在.cshtml(视图)中,并更改-->使用本地IIS Web服务器,则其工作正常 任何帮助

@Scripts.Render(“~/bundles/modernizer”)

@Scripts.Render(“~/bundles/jquery”)


在布局部分对该部分进行了注释并为我工作。

我发现在bundle config中添加对
/signal/hubs
的引用不起作用,因为它是在运行时生成的,而绑定发生在编译时。
所以我这样做了:
1-在每个视图中创建一个类似的部分,我需要参考
信号机/集线器

    @section SignalRScripts{
    <script src="/signalr/hubs"></script>
    }  

然后它工作得很好

我假设您也包括基本jQuery库?另外,是否定义了$.connection?如果您在浏览器中手动导航到该url,它会显示什么?@AndersHolmström我已在第一个屏幕截图中粘贴了连接响应。我只是想更新一下,如果我将脚本保存在.cshtml(视图)中并更改为使用本地IIS Web服务器,它就可以正常工作了!所以signar与bundle还不兼容吗?bundle是在编译时加载的,但是
/signar/hubs
是在运行时生成的。我认为这就是为什么在这种情况下使用bundle不起作用的原因。
    @Scripts.Render("~/js")  
    @RenderSection("SignalRScripts", required: false)  
    @RenderSection("Scripts", required: false)