web-dev-qa-db-fra.com

Définition de la valeur de délai d'attente pour le service Web .NET

J'ai un service Web écrit en C # qui vit sur un site SharePoint. J'ai modifié le web.config avec le code suivant:

<configuration>
  <system.web>
    <httpRuntime executionTimeout="360" />

...

pour le fichier IIS Inetpub, le fichier SP ISAPI web.config et le fichier SP layouts web.config. J'ai a également modifié le fichier machine.config avec le même code et a tenté de contourner les délais d'attente que je vois dans IIS.

Lorsque j'appelle ce service Web à partir d'une application Windows C #, je peux entrer dans la méthode Web et commencer à déboguer la variable mais après un court laps de temps (~ 1 minute, peut-être moins), les valeurs des variables ne sont plus présentes car cela est renvoyé:

System.Net.WebException "La demande a été abandonnée: l'opération a expiré."

J'essaie de comprendre où les valeurs de temporisation correctes doivent être définies et comment. Je redémarre IIS après avoir effectué chaque modification mais rien ne change pour donner des résultats différents.

Merci

25
Dan McKinnon

Après avoir créé votre client en spécifiant la liaison et l'adresse du point de terminaison, vous pouvez attribuer un OperationTimeout,

client.InnerChannel.OperationTimeout = new TimeSpan(0, 5, 0);
26
p_champ

Essayez de définir la valeur du délai d'expiration dans votre classe de proxy de service Web:

WebReference.ProxyClass myProxy = new WebReference.ProxyClass();
myProxy.Timeout = 100000; //in milliseconds, e.g. 100 seconds
25
Michael Kniskern