Ce qui n'est pas clair, mais je pense que vous demandez implicitement, c'est s'il est possible ou non de configurer côté serveur pour expirer les appels qui prennent plus d'une minute à traiter. Ce n'est pas possible
gravidThoughts
Réponses:
196
Faites-vous référence au côté serveur ou côté client?
Pour un client, vous voudrez ajuster l' attribut sendTimeout d'un élément de liaison. Pour un service, vous souhaiterez ajuster l' attribut receiveTimeout d'un élément de liaison.
Sous le menu Outils de Visual Studio 2008 (ou 2005 si vous avez installé le bon élément WCF), il existe une option appelée «Éditeur de configuration de service WCF».
De là, vous pouvez modifier les options de liaison pour le client et les services, l'une de ces options sera pour les délais d'expiration.
publicstaticvoidMain(){Uri baseAddress =newUri("http://localhost/MyServer/MyService");try{ServiceHost serviceHost =newServiceHost(typeof(CalculatorService));WSHttpBinding binding =newWSHttpBinding();
binding.OpenTimeout=newTimeSpan(0,10,0);
binding.CloseTimeout=newTimeSpan(0,10,0);
binding.SendTimeout=newTimeSpan(0,10,0);
binding.ReceiveTimeout=newTimeSpan(0,10,0);
serviceHost.AddServiceEndpoint("ICalculator", binding, baseAddress);
serviceHost.Open();// The service can now be accessed.Console.WriteLine("The service is ready.");Console.WriteLine("Press <ENTER> to terminate service.");Console.WriteLine();Console.ReadLine();}catch(CommunicationException ex){// Handle exception ...}}
Réponses:
Faites-vous référence au côté serveur ou côté client?
Pour un client, vous voudrez ajuster l' attribut sendTimeout d'un élément de liaison. Pour un service, vous souhaiterez ajuster l' attribut receiveTimeout d'un élément de liaison.
Bien sûr, vous devez mapper votre point de terminaison souhaité à cette liaison particulière.
la source
receiveTimeout
côté serveur régit la détermination de l'inactivité pour les liaisons basées sur la session. Par exemple, le serveur n'utilisera pas ce paramètre pour les liaisons basicHTTP. Vous devez rouler vos propres délais de traitement côté serveur pour WCFSous le menu Outils de Visual Studio 2008 (ou 2005 si vous avez installé le bon élément WCF), il existe une option appelée «Éditeur de configuration de service WCF».
De là, vous pouvez modifier les options de liaison pour le client et les services, l'une de ces options sera pour les délais d'expiration.
la source
Différents délais d'attente signifient des choses différentes. Lorsque vous travaillez sur le client ... vous regardez probablement principalement SendTimeout - consultez cette référence - explication merveilleuse et pertinente: http://social.msdn.microsoft.com/Forums/en-US/wcf/thread / 84551e45-19a2-4d0d-bcc0-516a4041943d /
la source
Vous pouvez choisir deux manières:
1) Par code dans le client
2) Par WebConfig dans un serveur Web
Pour plus de détails voir les documentations officielles
Configuration des valeurs de délai d'expiration sur une liaison
Classe WSHttpBinding
la source
En plus des délais de liaison (qui sont en
Timespan
s), vous pouvez également en avoir besoin. C'est en quelques secondes.la source