Сведения о вопросе

Kimsanov

10:52, 3rd August, 2020

Теги

web-services    

Веб-сервис жив навсегда

Просмотров: 418   Ответов: 1

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

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

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



  Сведения об ответе

dump

23:04, 18th August, 2020

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

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

new mywebservice().call()

Овации


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться