繁体   English   中英

IIS7.5下的SignalR webapp不适用于从其他webapp(跨域)进行的Firefox访问

[英]SignalR webapp under IIS7.5 don't works on Firefox access from other webapp(cross-domain)

我正在IIS 7.5下测试SignalR(1.1.0)聊天示例。

我正在尝试从其他Web应用程序连接到我的SignalR Webapp(跨域)。

我已经在web.config上进行了跨域配置,这在asp.net开发服务器上可以正常工作,并且已在global.asax上启用了cors。

但是,当我将此项目部署到IIS 7.5时,此方法不起作用。 然后,我注意到它仅在IE 8中有效,而在Firefox中无效。

我进行了如下连接:

        var connection = $.hubConnection('http://my.webserver.ip/sincronismoSR'),
            chatHubProxy = connection.createHubProxy('chatHub');

        connection.start().done(function() {
                $('#sendmessage').click(function () {
                chatHubProxy.invoke('Send', $('#displayname').val(), $('#message').val());
                $('#message').val('').focus();
            });
        });

我查看了发出的请求,它得到200响应,但答案为空。

Claudio,我们在一个项目中使用了SignalR,效果很好。 不幸的是,我的研究不够好。 我以为SignalR在浏览器支持时就是websockets,但其后果是,因为我们在2008 R2服务器上运行.NET 4.0,所以我们再也没有websockets了。

SignalR Websocket传输需要.NET 4.5,IIS8、2012Server / Win8,而对于我们的项目(尚不可接受)。

我环顾四周,发现.NET堆栈上有一些替代方法。 最终,我们决定使用xsockets.NET( http://xsockets.net ),此后再也没有回头。 从SignalR迁移到xsockets确实很容易,并且xsockets在所有平台上都具有websocket支持。 还支持Mono。

唤醒我们的是信号器与xsocket之间的比较: http ://xsockets.net/xsockets-vs-signalr

但是,SignalR上没有阴影。 这是一个很好的选择,但由于服务器要求而不适用于我们。 糟糕的是,社区似乎一直认为SignalR一直是实时的。 但是正如我说的那样,我们只能自责,因为我们没有足够好地阅读文档并浪费了很多时间:(

祝你好运

我找到了解决方案,但是我不明白为什么,当我使用Firefox时,如果没有设置,就不会选择正确的传输方式。

    var connection = $.hubConnection('http://my.webserver.ip/sincronismoSR'),
        chatHubProxy = connection.createHubProxy('chatHub');

    connection.start({ transport: ['webSockets', 'longPolling'] }).done(function() {
            $('#sendmessage').click(function () {
            chatHubProxy.invoke('Send', $('#displayname').val(), $('#message').val());
            $('#message').val('').focus();
        });
    });

因此,此{ transport: ['webSockets', 'longPolling'] }配置解决了我的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM