电话MapSignalR导致协议错误

问题描述:

这是一个后续行动,我以前在这里的问题..电话MapSignalR导致协议错误

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(新标签)得到一个错误..

协议错误:未知运输

玩弄我发现这只发生在调用startup.cs文件中的app.MapSignalR()之后。无法理解,为什么自从我接下来的教程工作得很好,除非它与该链接上的另一个控制器交叉有关。它在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() { 

      }); 
    }); 

任何帮助,将不胜感激。 。

+0

什么是SRStart控制器\视图的路由配置? –

+0

没有一个可能是问题。对于MVC我仍然有点新,但我不知道要添加一个。你能给我一些关于这个PLZ的细节吗? – gmes29

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

+0

我的天哪,是吗?啧。我永远不会想到这一点。很多。 – gmes29

+0

请确保接受答案(不仅仅是投票):_要将答案标记为已接受答案,请点击答案旁边的复选标记以将其从空洞状态切换到绿色_ –