Silverlight отключиться от дуплекса wcf после 10 подключений

Я разработал приложение для чата Silverlight. В одном окне загружайте более одного окна чата одновременно, и каждое окно чата создает новое соединение с дуплексной службой wcf. Но после каждых 10 окон чата он отключается от wcf и перестает работать. Я кодирую некоторые для опции дросселирования, но они не работают. это мой код: -

public class PollingDuplexServiceHostFactory : ServiceHostFactoryBase
{
    public override ServiceHostBase CreateServiceHost(string constructorString,
        Uri[] baseAddresses)
    {
        return new PollingDuplexSimplexServiceHost(baseAddresses);
    }
 }

/// <summary>
/// PollingDuplexServiceHostFactory
/// </summary>
class PollingDuplexSimplexServiceHost : ServiceHost
{

    public PollingDuplexSimplexServiceHost(params System.Uri[] addresses)
    {
        InitializeDescription(typeof(JakayaChatService), new UriSchemeKeyedCollection(addresses));
        Description.Behaviors.Add(new ServiceMetadataBehavior());
        var throttle = Description.Behaviors.Find<ServiceThrottlingBehavior>();

        if (throttle == null)
        {
            throttle = new ServiceThrottlingBehavior
            {
                MaxConcurrentCalls = 1000,
                MaxConcurrentInstances = 1000,
                MaxConcurrentSessions = 1000
            };
            Description.Behaviors.Add(throttle);
        }


    }

    protected override void InitializeRuntime()
    {
        PollingDuplexBindingElement pdbe = new PollingDuplexBindingElement()
        {
            ServerPollTimeout = TimeSpan.FromSeconds(05),
            InactivityTimeout = TimeSpan.FromSeconds(3600)

        };

        // Add an endpoint for the given service contract.
        this.AddServiceEndpoint(
            typeof(IJakayaChatService),
            new CustomBinding(
                pdbe,
                new BinaryMessageEncodingBindingElement(),
                new HttpTransportBindingElement()),
                "");

        // Add a metadata endpoint.
        this.AddServiceEndpoint(
            typeof(IMetadataExchange),
            MetadataExchangeBindings.CreateMexHttpBinding(),
            "mex");

        base.InitializeRuntime();

    }
}

person Community    schedule 12.08.2009    source источник


Ответы (1)


Ограничение в 10 подключений обычно связано с операционной системой. Например, Windows XP имеет ограничение в 10 подключений, тогда как серверные операционные системы допускают гораздо больше в производственной среде. Тем не менее, проблема может быть ограничена вашей средой разработки и исчезнуть при развертывании в более дорогой ОС.

Примечания от MS: Для Windows XP Professional максимальное количество других компьютеров, которым разрешено одновременно подключаться к сети, равно десяти. Это ограничение включает в себя все протоколы транспорта и совместного использования ресурсов вместе взятые. Для Windows XP Home Edition максимальное количество других компьютеров, которым разрешено одновременно подключаться к сети, равно пяти. Это ограничение - количество одновременных сеансов с других компьютеров, которые разрешено размещать системе. Это ограничение не распространяется на использование инструментов администрирования, которые подключаются с удаленного компьютера.

Ограничения и оптимизация IIS Conneciton http://blogs.msdn.com/david.wang/archive/2006/04/12/HOWTO-Maximize-the-Number-of-Concurrent-Connections-to-IIS6.aspx

person PortageMonkey    schedule 12.08.2009