powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Веб сервис не отвечает
7 сообщений из 7, страница 1 из 1
Веб сервис не отвечает
    #38220466
cavalero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
С очень странной проблемой столкнулся: есть веб сервис, который отдает XmlDocument, выглядит он следующим образом:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
    [SoapHeader("Authentication", Required = true)]
    [WebMethod]
    public XmlDocument GetXmlPricesNoOverlap()
    {
        HttpContext.Current.Response.BufferOutput = false;
        XmlDocument XmlDoc = new XmlDocument();
        string txtxml = "<msg>Authorization Failed</msg>";
        if (Membership.ValidateUser(Authentication.Username, Authentication.Password))
        {
            DataTable res = GetXml();
            foreach (DataRow dr in res.Rows)
            {
                txtxml = dr["XmlDoc"].ToString();
            }
        }
        XmlDoc.LoadXml(txtxml);
        return XmlDoc;
    }



Всё работало до поры до времени, но ВНЕЗАПНО сервис просто перестал отвечать. При этом видно, что запрос из веб сервиса в БД уходит, а потом клиентское приложение просто не дожидается ответа от веб сервиса и падает по таймауту.

Объем документа, который отдает этот веб сервис - около 14 Мб, что не много. Аналоничные веб сервисы, работающие в рамках этого приложения и отдающие сравнимые по размеру документы работают.

К слову, этот веб сервис, если его вызывать с компьютера, на котором он выполняется без проблем. А с удаленной машины уже нет.

Голову сломал насчёт того, где может не проходить этот Xml. При уменьшении объема данных всё ок.
По идее, кроме таймаута в web.config не должно быть никаких ограничений на веб сервисы в .net 4.5 ?
...
Рейтинг: 0 / 0
Веб сервис не отвечает
    #38220488
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cavaleroесть веб сервис, который отдает XmlDocument
Плохая практика.

P.S. MaxReceivedMessageSize пробовал?
...
Рейтинг: 0 / 0
Веб сервис не отвечает
    #38220493
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще почитать тут: How to: Enable a Web Service to Send and Receive Large Amounts of Data

Код: xml
1.
2.
3.
4.
5.
<configuration>
  <system.web>
      <httpRuntime maxMessageLength="409600" executionTimeoutInSeconds="300" />
  </system.web>
</configuration>
...
Рейтинг: 0 / 0
Веб сервис не отвечает
    #38220531
cavalero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
МСУcavaleroесть веб сервис, который отдает XmlDocument
Плохая практика.

P.S. MaxReceivedMessageSize пробовал?

Спасибо за ответ!

Если не отдавать XmlDocument, то что лучше отдавать?
Я, к сожалению, сейчас уже не могу поменять веб сервис, т.к. уже написано X разных реализаций клиента (win,linux), которые получают эти цены, а потом как-то обрабатывают. У меня есть референсный, написанный на .net и он работает во всех конфигурациях, кроме той, когда надо получать данные с удаленной машины.

Настройка <httpRuntime maxMessageLength="409600" executionTimeoutInSeconds="300" /> валидна только если установлен WSE. Я в превом приближении не вижу зачем он мне нужен? В принципе, мне надо только отдавать XmlDocument и всё...
...
Рейтинг: 0 / 0
Веб сервис не отвечает
    #38220600
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cavaleroЕсли не отдавать XmlDocument, то что лучше отдавать?
Типизированные данные и только их.

Код: c#
1.
2.
3.
4.
public class PricesNoOverlapResult : ServiceResult
{
    public Document[] Documents { get; set; }
}



Core
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class ServiceResult
{
    public int ErrorCode { get; set; }
    public int ErrorText { get; set; }
    // ...
}

public class Document
{
    public int DocumentId { get; set; }
    public string Title { get; set; }
}



cavaleroНастройка <httpRuntime maxMessageLength="409600" executionTimeoutInSeconds="300" /> валидна только если установлен WSE. Я в превом приближении не вижу зачем он мне нужен?
Я не в курсе, что там у тебя установлено и в каком приближении, вровно как и что такое WSE. Это клиентская настройка, которая должна быть у потребителей SOA.

cavaleroВ принципе, мне надо только отдавать XmlDocument и всё...
Не суть что надо отдавать. Если потребители не сконфигурированы - это их проблемы, а не сервиса.
...
Рейтинг: 0 / 0
Веб сервис не отвечает
    #38221131
cavalero
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хм, на счастье проблема решилась проблема решилась установкой апдейтов и рестартом продакшн сервера, но всё равно чуднО...
Всё таки не гоже, когда что-то перестает работать по каким-то неизвестным прицнипам...
...
Рейтинг: 0 / 0
Веб сервис не отвечает
    #38221759
Фотография EDUARD SAPOTSKI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cavaleroХм, на счастье проблема решилась проблема решилась установкой апдейтов и рестартом продакшн сервера, но всё равно чуднО...
Всё таки не гоже, когда что-то перестает работать по каким-то неизвестным прицнипам...
Скорее всего это был стандартный косяк веб-сервисов с передачей длинных строк. Если передаешь длинную строку то сервис просто глохнет. В апдейтах это вроде кагбэ профиксили, но однажды я до посинения накатывал апдейты, но так этот косяк и не пропал, пришлось прилепить какой-то костыль, уже не помню что...
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Веб сервис не отвечает
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]