Веб-сервис жив вечен - PullRequest
       8

Веб-сервис жив вечен

1 голос
/ 21 августа 2008

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

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

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

1 Ответ

1 голос
/ 21 августа 2008

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

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

new mywebservice().call()

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...