Webservice вечно живым


1

Я часто использую WebService таким образом

public void CallWebservice() 

{ 

    mywebservice web = new mywebservice(); 

    web.call(); 

} 

, но иногда я делаю это

private mywebservice web; 

public Constructor() 
{ 

    web = new mywebservice(); 

} 

public void CallWebservice() 
{ 

    web.call(); 

} 

Второй подход любит меня очень много, но иногда это раз, и я должен был запустить приложение опять же, первый, я думаю, что он наносит накладные расходы, и это не очень эффективно, на самом деле иногда первый вызов возвращает WebException - ConnectFailure (я не знаю почему).

Я нашел статью (Web Service Woes (A light at the end of the tunnel?)), что превышает тайм-аут поворачивая KeepAlive свойство ложным в перекрываться функции GetWebRequest, вот это код:

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 

Вопрос заключается в том, можно ли продлить навсегда веб-служба тайм-аут и, наконец, как вы реализуете свои веб-службы для решения этой проблемы?

1

Классы, созданные Visual Studio для веб-сервисов, являются прокси-серверами с небольшим количеством состояний, поэтому их создание довольно дешево. Я бы не стал беспокоиться о потреблении памяти для них.

Если то, что вы ищете способ вызвать WebMethod в одной строке, вы можете просто сделать это:

new mywebservice().call() 

Приветствия