2008-08-20 7 views
1

Ich benutze webservice oft auf diese WeiseWebservice am Leben für immer

public void CallWebservice() 

{ 

    mywebservice web = new mywebservice(); 

    web.call(); 

} 

aber manchmal sehe ich den

private mywebservice web; 

public Constructor() 
{ 

    web = new mywebservice(); 

} 

public void CallWebservice() 
{ 

    web.call(); 

} 

Den zweiten Ansatz mich sehr mag, aber manchmal ist es mal aus und ich hatte die Anwendung zu starten wieder, die erste, ich denke, es bringt Overhead und es ist nicht sehr effizient, in der Tat, manchmal der erste Aufruf gibt eine WebException - ConnectFailure (Ich weiß nicht warum).

ich einen Artikel gefunden (Web Service Woes (A light at the end of the tunnel?)), die die Auszeit Drehen der Keep-Alive-Eigenschaft auf false in der überschriebenen Funktion GetWebRequest, hier ist der Code übersteigt: für immer

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 

Die Frage ist, ist es möglich, erweitern Wie lange dauert es, bis der Webservice ausläuft und wie implementieren Sie Ihre Webservices?

Antwort

1

Die Klassen, die von Visual Studio für Webservices generiert werden, sind nur Proxys mit wenig Status, also ist das Erstellen ziemlich billig. Ich würde mir keine Sorgen um den Speicherverbrauch machen.

Wenn das, was Sie suchen eine Möglichkeit, die Webmethod in einer Zeile rufen Sie dies einfach tun können:

new mywebservice().call() 

Prost