调用 MapSignalR 导致协议错误

Call to MapSignalR causes Protocol error

这是我之前在这里提问的后续问题..

MVC - trouble linking to another Controller/Action

如您所见,我最终确实从另一个控制器获取了我的视图以显示在新选项卡中,因此它可以正常工作。直到我安装了 SignalR。使用本教程作为指南的简单版本..

http://www.asp.net/signalr/overview/getting-started/tutorial-getting-started-with-signalr-and-mvc

按照创建项目的步骤操作后,教程运行良好。我唯一要做的就是将 jquery signalr javascript 文件的版本更改为最新版本(这是我没有的版本,因为本教程是用较旧的 VS 2012 编写的).

无论如何,在对我的网站执行相同的步骤后,我现在在单击 /SignalR/SRStart(新标签)的 link 时出现错误..

协议错误:未知传输

我发现这只发生在调用 startup.cs 文件中的 app.MapSignalR() 之后。无法理解为什么自从我遵循的教程工作正常,除非它与跨入另一个控制器有关 link。我在 SRStart 视图中放置了所有信号器连接代码和回调函数,但我认为它从未达到过,因为页面甚至没有加载。

这是我的代码..

startup.cs

public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
        app.MapSignalR();
    }
}

中心

public class SRHub : Hub
{
    public void Send(string message)
    {
        // Call the addNewMessageToPage method to update clients.
        var conn = GlobalHost.ConnectionManager.GetHubContext<SRHub>();
        conn.Clients.All.addNewMessageToPage(message);
        //Clients.All.addNewMessageToPage(message);
    }
}

javascript 在 SRStart.cshtml

    $(function () {
        // Reference the auto-generated proxy for the hub.
        var conn = $.connection.sRHub;
        // Create a function that the hub can call back to display messages.
        conn.client.addNewMessageToPage = function (message) {
            if (!message.contains('[EOF]')) {
                populateStreamDialog(message);
            }
        };

        $.connection.hub.start()
            .done(function () {

            });
    });

任何帮助将不胜感激..

我能够重现错误。问题是 /SignalR 是 SignalR 本身使用的路由。 通过使用名为 SignalRController 的 MVC 控制器,现在 SignalR 和 MVC 之间存在冲突导致错误。 只需将 MVC 控制器 SignalRController(和包含其视图的文件夹)重命名为其他名称...