![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
sip |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Есть web service на .NET1.1 Проблема в следующем: клиент делает несколько вызовов методов и все они отказываются с WebException: Time out. Потом спустя минуту делается еще один вызов и он проходит успешно, но вместе с ним проходят и предыдущие запросы, это видно по записям в базе данных. Подскажите, что за проблема может быть с веб сервисом и как от нее избавиться.
Спасибо. |
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Конечно может глупость скажу, но попробуй увеличить таймаут в ISS на сайте.
|
|||
|
||||
sip |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Спасибо за ответ, я попробую.
Но получается как-то странно, допустим первые два вызова закончились таймаутом, но остались на сервере "сидеть" как бы в очереди, а третий вызов их пробивает и выполняются сразу все три... |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 6 Всего: 49 |
sip, сервер получает запрос, начинает его обрабатывать. Клиент ждет столько, сколько прописано в таймауте на его стороне (WebClientProtocol.Timeout). Не дожидается и бросает твоему коду исключение. А сервер спокойно завершает обработку. Никаких "сидеть в очереди" при 3-х вызовах скорее всего нет. Это, конечно, если запросы на стороне сервера долго обрабатываются - например, если это 2 первых запроса к вебсервису после его рестарта.
![]() |
|||
|
||||
sip |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
PashaPash, а как правильно делается в таком случае? я хочу чтобы клиет и сервер имели один набор данных, а так получается сервер меняет свою часть, а клиент нет.
|
|||
|
||||
emmanuil |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 9.1.2007 Репутация: нет Всего: 3 |
Увеличь таймаут. PashaPash ведь написал где. Твой прокси класс к веб-службе является наследником WebClientProtocol и у него значит есть свойство Timeout (в миллисекундах), вот его и увеличь.
![]() Это сообщение отредактировал(а) emmanuil - 12.2.2009, 06:36 |
|||
|
||||
sip |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 10.12.2007 Репутация: нет Всего: нет |
Установлен таймаут у клиента на 5 секунд. Больше клиент ждать не должен. Но нужно чтобы и сервер прекратил все действия. А у меня клинет уходит по эксепшену а сервер продолжает свою работу.
Как такое сделать? |
|||
|
||||
PashaPash |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1233 Регистрация: 3.1.2008 Репутация: 6 Всего: 49 |
sip, на сервере выполняется кусок твоего кода. Как клиент, не дождавшийся ответа, может взять и прекратить его?
Проще всего будет использовать транзакции, тогда действия сервера будут просто откатаны назад. Но это потянет за собой MSDTC и минимум 2.0. Смотри TransactionInterop. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |