Я часто так пользуюсь веб-сервисом
public void CallWebservice()
{
mywebservice web = new mywebservice();
web.call();
}
но иногда я делаю это
private mywebservice web;
public Constructor()
{
web = new mywebservice();
}
public void CallWebservice()
{
web.call();
}
Второй подход мне очень нравится, но иногда он прерывается, и мне приходилось снова запускать приложение, первое, я думаю, это приводит к накладным расходам и не очень эффективно, на самом деле, иногда первый вызов возвращает WebException - ConnectFailure (я не знаю почему).
Я нашел статью ( Глаза веб-службы (свет в конце туннеля?) ), превышающий время, в течение которого для свойства KeepAlive было установлено значение false в переопределенной функции 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
Вопрос в том, возможно ли продлить время ожидания веб-сервиса и, наконец, как вы реализуете свои веб-сервисы для решения этой проблемы?