silverlight прекъснете връзката с wcf duplex след 10 връзки

Разработих приложение за чат silverlight. В един прозорец заредете повече от един прозорец за чат едновременно и всеки прозорец за чат създава нова връзка към услугата wcf duplex. Но след всеки 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 връзки, докато сървърните операционни системи позволяват много повече в производствена среда. Това каза, че проблемът може да е ограничен до вашата dev env и да изчезне, когато бъде внедрен в по-висок клас OS.

Бележки от MS: За Windows XP Professional максималният брой други компютри, на които е разрешено да се свързват едновременно в мрежата, е десет. Това ограничение включва всички комбинирани протоколи за транспортиране и споделяне на ресурси. За Windows XP Home Edition максималният брой други компютри, на които е разрешено да се свързват едновременно в мрежата, е пет. Това ограничение е броят на едновременните сесии от други компютри, които системата има право да хоства. Това ограничение не се прилага за използването на административни инструменти, които се прикачват от отдалечен компютър.

Ограничения на връзките на IIS и оптимизация 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