#wcf #silverlight #duplex
#wcf #silverlight #дуплекс
Вопрос:
Я разработал приложение 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();
}
}
Ответ №1:
Ограничение в 10 подключений обычно связано с операционной системой. Например, Windows XP имеет ограничение в 10 подключений, тогда как серверные операционные системы допускают гораздо большее количество подключений в производственной среде. Тем не менее, проблема может быть ограничена вашей средой разработки и исчезнет при развертывании на ОС более высокого уровня.
Примечания от 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