Asp.net mvc 3 信号器在启动时不发送web请求
因此,我们正在使用signalR实现一些消息传递系统。 我们在最新版本的Nuget中加入了signalR。 该应用程序托管在IIS 7上。我们已禁用所有URL重写规则 我们正在使用集线器,请参见以下代码:Asp.net mvc 3 信号器在启动时不发送web请求,asp.net-mvc-3,jquery,signalr,Asp.net Mvc 3,Jquery,Signalr,因此,我们正在使用signalR实现一些消息传递系统。 我们在最新版本的Nuget中加入了signalR。 该应用程序托管在IIS 7上。我们已禁用所有URL重写规则 我们正在使用集线器,请参见以下代码: [HubName("messages")] public class Messages : Hub { public void Send(string message) { Clients.showPopUp(m
[HubName("messages")]
public class Messages : Hub
{
public void Send(string message)
{
Clients.showPopUp(message);
}
}
在视图中包括文件:
<script src="@Url.Content("~/Scripts/jquery-1.7.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.signalR.js")" type="text/javascript"></script>
<script src="@Url.Content("~/signalr/hubs")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/Messages/Messages.js")" type="text/javascript"></script>
提交邮件时调用:
$.connection.messages.send($('#Body').val());
所以我们得到的是:谷歌Chrome控制台没有错误,没有xhr请求,信号也没有
我们已经检查了/signalr/hubs
是否存在,它是否存在,并且/signalr/negotiate
返回以下json:
{"Url":"/agenda/signalr","ConnectionId":"a4215b26-32f1-4a52-bf6d-4de096298a07","TryWebSockets":false,"WebSocketServerUrl":null,"ProtocolVersion":"1.0"}
当我们调用send时,控制台中会显示以下内容:
未捕获信号器:必须先启动连接,然后才能发送数据。在.send()之前调用.start()
如果我们调试signar,我们会看到调用了start,但是我们没有遇到jQuery ajax调用的错误或成功,也没有任何xhtml请求。我们做错了什么?
尝试查看此问题:解决方案 在jquery.signalR.js中更改所有
$.ajax(url, {options});
到
太好了,这是信号机的问题。谢谢你指出这一点。
$.ajax(url, {options});
$.ajax({ url: url, other options...});