тайм-аут вызова веб-службы, но передача данных все еще завершается - PullRequest
2 голосов
/ 13 марта 2009

Я звоню своему веб-сервису с веб-страницы и получаю тайм-аут, несмотря на очень высокие значения в моих файлах web.config. Это происходит периодически, когда файл, как правило, довольно большой, но , но файл все еще загружается полностью (как если бы тайм-аут НЕ БЫЛ). В моем файле .aspx есть функция, которая вызывает мой прокси-класс ASMX:

 private void UploadFile(HttpPostedFile postedFile, string fileNameOnly)
{
    // create an instance of the proxy class to talk to our service; calling it client:
    string strURI = string.Empty;
    WSproxyProject.ASMXProxy.FileService client = new WSproxyProject.ASMXProxy.FileService();
    try
    {
        BinaryReader b = new BinaryReader(postedFile.InputStream);
        byte[] binData = b.ReadBytes(numBytes);
        strURI = client.UploadFile(binData, fileNameOnly, binData.Length);
        txtURI.Text = strURI;
        LogText("SUCCESS: " + fileNameOnly + " has been uploaded. URI=" + strURI);
    }
    catch (Exception ex)
    {
    LogText("UPLOAD ERROR: " + ex.Message.ToString());

    }
}

Обратите внимание, что мой веб-сервис на localhost вызывает другой веб-сервис, который на самом деле хранит окончательные данные. У меня есть следующие настройки executeTimeout в файле web.config во всех следующих местах:

  1. web.config в моем проекте веб-клиента (вызывающего myWebService)
  2. web.config на myWebService (вызывающая сторона vendorWebService)
  3. web.config на vendorWebService (находится на другом сервере в моей локальной сети)

Исключение, перехваченное блоком кода выше, показывает, что ex.Source - System.Web.Services, а ex.Message -:

Время ожидания истекло

Ответы [ 2 ]

1 голос
/ 19 марта 2009

Что произойдет, если вы установите в своем методе время ожидания веб-службы?

...
WSproxyProject.ASMXProxy.FileService client = new WSproxyProject.ASMXProxy.FileService();
    client.Timeout = 9999999;
    try
    ...

Возможно, вам также потребуется установить свойства времени ожидания, аналогичные другим веб-службам, которые использует FileService.

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

Удачи.

0 голосов
/ 14 марта 2009

Мозговой штурм:

  • Задумывались ли вы о том, какой веб-сервис или клиент отключен? Что показывает трассировка стека?
  • Каждый начал бы процесс в немного другое время. Они имеют равные тайм-ауты?
  • Файл завершен? Это может быть правильный размер, но может быть поврежден.
  • Я знаю, это звучит глупо, но есть ли бесконечный цикл или цикл, который длится дольше, чем вы думаете, где-нибудь?

Надеюсь, что-то там поможет.

...