Iis 6 尽管客户端绑定正确,但部署时未触发OnConnected

Iis 6 尽管客户端绑定正确,但部署时未触发OnConnected,iis-6,signalr,Iis 6,Signalr,我已经浏览过这个网站,遇到过类似的问题,但解决方案不适用于我的情况。我已经注册了客户端方法 此外,在本地设备上运行时,我的集线器的OnConnected方法也会触发。它在部署时不会开火。但是,所有其他方法都可以正常工作。目前,我已经创建了一个工作环境: $(函数(){ var myHub=$.connection.myHub; myHub.client.clientMessage=函数(消息){alert(消息);}; //启动连接。 $.connection.hub.start().done

我已经浏览过这个网站,遇到过类似的问题,但解决方案不适用于我的情况。我已经注册了客户端方法

此外,在本地设备上运行时,我的集线器的OnConnected方法也会触发。它在部署时不会开火。但是,所有其他方法都可以正常工作。目前,我已经创建了一个工作环境:


$(函数(){
var myHub=$.connection.myHub;
myHub.client.clientMessage=函数(消息){alert(消息);};
//启动连接。
$.connection.hub.start().done(函数(){
myHub.server.多余方法ToDosMethingOnConnect();
});
});
但是,我真的想停止使用第二个调用,让
OnConnected
正常工作。在我的部署服务器上,有什么必要让它同样工作

作为参考,我的SignalR是版本1.2.2(目前仅限于.NET4.0)合并到MVC站点中(否则没有错误)。 我的开发设备是IIS Express 8.5中的Windows 7主机 部署框是托管在IIS V6.0中的Winows Server 2003

编辑1:我已经包括了一个

myHub.connection.stateChanged(函数(change){alert(“State:+change.newState);});
对于调试,当页面加载时,它会显示“状态:0”的弹出窗口,然后在短时间后显示“状态:1”,当我离开页面时显示“状态:4”,因此看起来我的连接本身运行正常。这在本地和部署服务器上的功能相同

编辑2:为了进一步测试,我更新了hub中的方法,如下所示:

public override Task OnConnected()
{
    Groups.Add(Context.ConnectionId, Context.User.Identity.Name);
    Clients.All.clientMessage("OnConnected:: ID: " + Context.ConnectionId + " USER: " + Context.User.Identity.Name);
    return base.OnConnected();
}

public void SuperfluousMethodToDoSameThingInOnConnect()
{
    Clients.All.clientMessage("SuperfluousMethodToDoSameThingInOnConnect:: ID: " + Context.ConnectionId + " USER: " + Context.User.Identity.Name);
}
此测试的结果表明,只有从
exterfluousmethodtodosamethinonconnect
发送的文本显示回调用者。但是,其他客户端(在其他浏览器窗口中测试)会同时看到
OnConnected
多余方法todosamethinonconnect
中的文本

此外,当我尝试使用
Context.Groups(Context.User.Identity.Name)
将消息发送回调用者时,消息不会被发送。但是,如果我将组注册行
Groups.Add(Context.ConnectionId,Context.User.Identity.Name)
OnConnected
移动到
多余方法todosamethinonconnect
,则可以使用
Groups.Add(Context.ConnectionId,Context.User.Identity.Name)
发送消息。这似乎非常奇怪,因为我可以看到调用了
OnConnected
方法,但组没有真正注册

真不知该怎么解释这种不稳定的行为


编辑3:将web应用程序推出到Windows Server 2012虚拟机,我发现它在那里工作正常,与我的本地开发框相同。是不是信号器在IIS 6上不能完全工作?

根据中的“受支持的服务器IIS版本”,仅支持IIS7或更新版本。

谢谢!从那个网站上,我看到了更适用的链接,根据我的SignalR 1.x版本,但我也看到该页面指定了IIS7+和仅集成,而不是经典(其中IIS6是)模式。再次感谢!有了这些信息,我至少能够适当地评论每件事,这样我们就可以在进行服务器升级时返回并以正确的方式进行清理。现在只能接受这些变通办法。