Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / обшение с WCF в обе стороны / 14 сообщений из 14, страница 1 из 1
07.05.2010, 18:24
    #36618024
Iber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
очень нужна помошь...проблема в следующем

делаю програму со следующей архитектурой клиент(silverlight) - сервис(WCF) - субдд(oracle)

клиент отсылает на сервис xml....
сервис принимает парсит и в цикле начинает добавлять в базу записи

проблема 1 как смотреть счетчик этого цикла на клиенте, чтобы реализовать скажем прогресбар...
проблема 2 как реализовать отмену(прекращение) с клиента этой процедуры добавления на сервисе...ну тоесть пользователь нажал отмена нак лиенте и сервис перестал добавлять.
...
Рейтинг: 0 / 0
07.05.2010, 21:08
    #36618156
Winnipuh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
цепляйте бесконечный прогресс на старте асинхронной операции и по завершении останавливайте.
...
Рейтинг: 0 / 0
08.05.2010, 02:25
    #36618337
bured
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
пункт 2 - дурацкая затея. Интерактивности как таковой не будет. Пока мессадж "отмена" дойдёт до сервера, ещё хз сколько записей будет обработано.
...
Рейтинг: 0 / 0
08.05.2010, 08:48
    #36618384
Iber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
бесконечный прогрес самое первое, что пришло в голову...но надо имено не бесконечный
...
Рейтинг: 0 / 0
08.05.2010, 09:15
    #36618389
Iber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
даже так и было сначала, но патом возникла необходмсоть показывать есть загрузка на сервере или нет после того как открыл\закрыл браузер...насчет отмены не критично, что не сразу придет сообщение, если это возможно впринципе сделать, буду рад услышать как.
...
Рейтинг: 0 / 0
08.05.2010, 13:42
    #36618508
sp
sp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
Iberочень нужна помошь...проблема в следующем

делаю програму со следующей архитектурой клиент(silverlight) - сервис(WCF) - субдд(oracle)

клиент отсылает на сервис xml....
сервис принимает парсит и в цикле начинает добавлять в базу записи

проблема 1 как смотреть счетчик этого цикла на клиенте, чтобы реализовать скажем прогресбар...
проблема 2 как реализовать отмену(прекращение) с клиента этой процедуры добавления на сервисе...ну тоесть пользователь нажал отмена нак лиенте и сервис перестал добавлять.

Для такой реализации необходима транзакция и отсылка по одной записи - тогда и прогресс на клиенте и отмена
...
Рейтинг: 0 / 0
08.05.2010, 15:58
    #36618589
Iber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
отсылка на сервис по одной записи или с сервиса в базу? если первое то так было первоначально, работало медленно, и я решил все на сервисе делать..если второе то так сейчас у меня...еше вот о чем падумал при отключении и падключении вцф наверна создает новый патомок сервисе каторый и вовсе не в курсе что делает его предыдущий собрат..ёпрст...

получается выход только в использовании бесконечного прогресс бара и не закрывание клиента?
...
Рейтинг: 0 / 0
08.05.2010, 16:01
    #36618592
Iber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
и если тока так возможно то как реализовать отмену добавления этого несчасного при отрублении клиента?
...
Рейтинг: 0 / 0
21.05.2010, 13:34
    #36641463
isasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
Работать через Dual (например, wsDualHttpBinding).
Записи возвращать через CallBack.

Код: plaintext
1.
2.
3.
4.
5.
6.
public interface ICalcCallBCallback
    {
       [OperationContract(IsOneWay = false)]
       int OnGetRecords(List<DataType> data);
    }


где возвращаемое значение код возврата клиента.
Например <0 - прерывает серверный процесс
...
Рейтинг: 0 / 0
21.05.2010, 14:34
    #36641658
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
isasaРаботать через Dual (например, wsDualHttpBinding).
В SL это PollingDuplex, но все вызовы в SL асинхронны, придется разруливать ситуации "более раннее сообщение пришло позже".
Вдобавок, PollingDuplex может быть лишь синглтоном, и, похоже, автору придется перестраивать свой сервис, с возможной потерей производительности...
...
Рейтинг: 0 / 0
21.05.2010, 16:27
    #36642040
isasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
LRно все вызовы в SL асинхронны, придется разруливать ситуации "более раннее сообщение пришло позже".

Обратный вызов делать Two-way

[OperationContract( IsOneWay = false )]
int OnGetRecords(List<DataType> data);

в цикле по мере чтения из курсора пересылать поциями.

Придут в порядке следования.
...
Рейтинг: 0 / 0
21.05.2010, 16:32
    #36642063
isasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
Вот синглтен уже хуже, т.к. во избежание блокировки надо делать, как минимум
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Reentrant, ...)]
...
Рейтинг: 0 / 0
21.05.2010, 17:25
    #36642229
LR
LR
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
isasaОбратный вызов делать Two-way
Придут в порядке следования.
Обратный вызов тоже можно сделать только асинхронно, by design (да оно и понятно - неведомы пути сообщения по интернетке)

Конечно, синхронность можно самому организовать (нумеровать, дожидаться очередного номера и т.п.), но ради чего такое городить в данном конкретном случае?
...
Рейтинг: 0 / 0
21.05.2010, 17:52
    #36642314
isasa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
обшение с WCF в обе стороны
LR
Конечно, синхронность можно самому организовать (нумеровать, дожидаться очередного номера и т.п.), но ради чего такое городить в данном конкретном случае?

Ну ради прогрессбара, конечно, такое городить - это экстрим.
А если преравать чтение из курсора на уровне серверного процесса, то туда нужно "вклиниваться" каким-то образом.

ТС я так понял хочет именно этого.
...
Рейтинг: 0 / 0
Форумы / WCF, Web Services, Remoting [игнор отключен] [закрыт для гостей] / обшение с WCF в обе стороны / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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