对于SignalR,我有一个奇怪的行为,我有一个定义如下的集线器:
public class NotificationHub : Hub
{
//Empty
}在我的js中,我有以下几点:
function blabla {
// bla bla
$.connection.NotificationHub.client.AppendNewStory = function (story) {
// appends a new story, long jquery code
};
$.connection.hub.start().done(function () {
_ConnectionStarted = true; // there must be some built in way
});
}我从mvc项目的一个类中调用js。
public SomeClass
{
private IHubContext _context;
public SomeClass()
{
_context = GlobalHost.ConnectionManager.GetHubContext<NotificationHub>();
}
public void Notify(SomeData ...)
{
_context.Clients.User(userId).AppendNewStory(data);
}
}问题有两个症状:
使用小提琴,我发现了以下内容:
可能有助于调试的东西,如果我打开两个或更多选项卡,服务器就会挂起。一个标签似乎没问题。
我也在使用IE 11和chrome,除了chrome尝试serverSentEvents而不是foreverFrame之外,同样的问题。
对如何调试这个问题有什么想法,明白我为什么得到504吗?或者服务器挂起的原因?我有Windows8.1更新1,IIS8,SignalR 2.0,.NET 4.5.1。
发布于 2014-07-07 08:25:10
好的,感谢所有回答的人,你们都帮助调试了这个问题,不幸的是,没有什么效果。
问题是,我需要在targetFramework中设置web.config属性:
<httpRuntime targetFramework="4.5.1">之后一切都很顺利。
发布于 2014-06-23 13:37:29
您在Windows8.1中安装了WebSockets吗?在“添加/删除功能”下执行此操作。在我做这件事之前,我也有类似的随机问题。我还必须在web.config中启用以下设置:
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true"/>发布于 2014-06-19 01:01:44
你的服务器和浏览器之间有什么东西。有些代理在web套接字和服务器发送事件方面有问题。尝试选择javascript中的传输。我在OpenIG上看到了火狐类似的东西。OpenIG不喜欢服务器发送事件,只是挂起。
https://stackoverflow.com/questions/24296936
复制相似问题