电话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() {
});
});
任何帮助,将不胜感激。 。
我能够复制错误。问题是/SignalR
是SignalR本身使用的路由。 通过使用名为SignalRController
的MVC控制器,SignalR和MVC之间现在存在冲突,导致该错误。 只需将您的MVC控制器SignalRController
(以及包含其视图的文件夹)重命名为其他内容...
我的天哪,是吗?啧。我永远不会想到这一点。很多。 – gmes29
请确保接受答案(不仅仅是投票):_要将答案标记为已接受答案,请点击答案旁边的复选标记以将其从空洞状态切换到绿色_ –
什么是SRStart控制器\视图的路由配置? –
没有一个可能是问题。对于MVC我仍然有点新,但我不知道要添加一个。你能给我一些关于这个PLZ的细节吗? – gmes29