Question

J'ai souvent l'utilisation d'un webservice de cette façon

public void CallWebservice()

{

  mywebservice web = new mywebservice();

  web.call();

}

mais parfois je fais ceci

private mywebservice web;

public Constructor()
{

  web = new mywebservice();

}

public void CallWebservice()
{

  web.call();

}

La seconde approche, qui m'aime beaucoup, mais parfois il fois et j'ai dû commencer à nouveau l'application, pour la première, je pense qu'il apporte les frais généraux et il n'est pas très efficace, en fait, parfois le premier appel renvoie un WebException - ConnectFailure (je ne sais pas pourquoi).

J'ai trouvé un article (Service Web de Malheurs (la lumière au bout du tunnel?)) qui dépasse le temps de tourner la propriété Persistante à false dans le remplacé fonction GetWebRequest, voici le code:

Protected Overrides Function GetWebRequest(ByVal uri As System.Uri) As System.Net.WebRequest

  Dim webRequest As Net.HttpWebRequest = CType(MyBase.GetWebRequest(uri), Net.HttpWebRequest)

  webRequest.KeepAlive = False

  Return webRequest

End Function

La question est, est-il possible de prolonger indéfiniment le webservice de temps et enfin, comment voulez-vous mettre en œuvre vos webservices pour gérer ce problème?

Était-ce utile?

La solution

Les classes généré par Visual Studio pour les webservices sont juste des proxys avec peu d'état, de sorte que le processus de création est assez bon marché.Je ne voudrais pas vous soucier de la consommation de mémoire pour eux.

Si ce que vous cherchez est un moyen d'appeler le webmethod dans une ligne, vous pouvez simplement faire ceci:

new mywebservice().call()

Cheers

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top