SignalR不适用于远程连接

时间:2014-03-19 15:51:00

标签: c# .net iis-7.5 signalr signalr-hub

我正在使用信号器的网站工作,当我在我的本地机器上测试时工作正常但是当我远程尝试它时我无法浏览mvc,当我尝试向signalar发送请求时它只是坐在那里等待。

这是我的javascript代码(我正在使用angularjs,但所有代码工作正常!):

function FixturesListController($scope,$q) {

$scope.fixtures =  [''];

var stringListHub = $.connection.stringListHub,
    model = {
        Items: []
    };
$.connection.hub.url = "http://192.168.1.2:8001/signalr";

stringListHub.client.updateModel = function(newName) {
    if (newName.Items != null) {
        $scope.$apply(function() {
            $scope.fixtures.length = 0;
            $(newName.Items).each(function(index, value) {
                $scope.fixtures.push(value);
            });
        });
    }


}

$.connection.hub.start({ xdomain: true }).done(function () {
    var fixtures = stringListHub.server.test().done(function (item) {
        $scope.$apply(function () {
            if (item.Items != null) {
                $scope.fixtures.length = 0;
                $(item.Items).each(function(index, value) {
                    $scope.fixtures.push(value);
                });
            }
        });
    });

});

$scope.AddFixture = function() {
    $scope.fixtures.push($scope.newName);
    stringListHub.server.updateModel({
        Items: $scope.fixtures
    });

};
}

这是信号器中心:

public class StringListHub : Hub
{
    private static StringList _list = new StringList();

    public void UpdateModel( StringList model )
    {
        _list = model;
        _list.LastUpdatedBy = Context.ConnectionId;
        // Update the shape model within our broadcaster
        Clients.AllExcept( _list.LastUpdatedBy ).updateModel( _list );
    }

    public StringList Test()
    {
        return _list;
    }
}

我将此添加到我的web.config

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
</system.webServer>

1 个答案:

答案 0 :(得分:1)

我发现了问题所在。我在我自己的个人计算机上测试它,并且iis对最大并发连接数限制为3.所以我在Windows服务器上运行它并且工作正常。