Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы, WCF
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
.NET 4.x

Отменить Wcf метод обращения к серверу

24.12.2015, 15:33. Показов 1249. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день.
Ситуация:
Есть сервер, подключенный к БД.
Есть клиент на WinForm, обмен данными между сервером и клиентом осуществляется по Wcf PipeBinding.
На стороне клиента методы Wcf осуществляются в Backgroundworker`е, отдельном от потока основной программы.
Как мне принудительно из клиента при необходимости прервать выполнение метода Wcf?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2015, 15:33
Ответы с готовыми решениями:

1С: Ошибка обращения к серверу 1С:предприятия
Добрый день! При переводе 1С предприятия с редакции 2.0 на 3.0 возникает ошибка: Ошибка обращения к серверу 1С:Предприятия по...

Где обсуждаются проблемы обращения к 1с как к оле-серверу?
Подскажите, плз, сайты , где обсуждаются проблемы обращения к 1с как к оле-серверу. А то вопросов накопилось.

Запрос $.ajax к WCF серверу возвращает 400 Bad Request
Всем привет! Пытаюсь из js с помощью $.ajax вызвать метод вебсервиса WCF, расположенного на другом домене, но получаю ошибку 400 Bad...

14
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
24.12.2015, 15:50
Цитата Сообщение от aquaMakc Посмотреть сообщение
принудительно из клиента при необходимости прервать выполнение метода Wcf?
Что-то не понял... А что мешает в клиенте вызвать CancelAsync()?
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
24.12.2015, 16:32  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
А что мешает в клиенте вызвать CancelAsync()?
этот метод устанавливает свойство BGW CancelationPending в True. Соответственно выход из него можно осуществить только в точке проверки этого свойства. Когда же мы выполняем метод Wcf, то пока сервер не закончит его выполнение - BGW дальше не сдвинется. В итоге у меня есть поток формы в которой я хочу сделать кнопочку "Остановить", поток BGW, который дошёл до Wcf и, грубо говоря, передал управление серверу и сервер, который у себя обрабатывает вызванный метод. Именно этот метод я и хочу прервать по желанию клиента.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
24.12.2015, 19:20
aquaMakc, метод на сервисе что из себя представляет? Если что-то вроде цикла (то есть последовательность итераций, в которой можно что-то проверить)-объявите в службе булевское поле и внешний контрактный метод, им управляющий. В том методе, что надо остановить, проверяйте его и делайте выход из метода.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
24.12.2015, 20:43  [ТС]
insite2012, я думал есть какой-то предусмотренный способ, wcf как-то тяжело даётся, литературу найти никак не могу. Завтра попробую в качестве аргумента метода булеву переменную с модификатором ref передавать и её проверять. Не хотелось бы отдельную глобальную переменную вводить и к ней целый контракт.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
24.12.2015, 21:13
Цитата Сообщение от aquaMakc Посмотреть сообщение
wcf как-то тяжело даётся, литературу найти никак не могу
Почему? Резник, Леве. вполне ничего себе литература. Да и в сети масса примеров.
А по вашему вопросу-расскажите точнее, что не выходит. Ну хоть кусок кода службы покажите, что-ли...
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
24.12.2015, 21:35  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
что не выходит
) то, что задумано в проекте работает, но задача довольно простая. Технология богатая, а найти литературу по ней на русском языке в бумаге не могу, даже в интернет-магазинах. Многое приходится методом проб и ошибок делать, например, самом начале, когда пробовал её применять не знал о датаконтрактах и использовал в качестве транспорта данных DataSet. Да и сейчас много белых пятен для меня в WCF. Например, как сказано в теме - есть ли способ прервать работу Контракта из клиента без изменения кода сервера...видимо нет.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
24.12.2015, 22:27
aquaMakc, в тех книгах что я выше сказал достаточно много информации. Ну а дальше уже сами, искать и пробовать. Что касается вашего вопроса-отменить метод иначе чем я предложил вы не сможете, да и не вижу я в этом смысла, по правде говоря.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
25.12.2015, 08:13  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
в тех книгах что я выше сказал достаточно много информации
Я ж не спорю, я говорю, что купить эти книги в бумаге невозможно. Нет их в продаже, находил только кривые сканы в низком разрешении, которые читать то ещё удовольствие.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.12.2015, 09:42
Цитата Сообщение от aquaMakc Посмотреть сообщение
находил только кривые сканы в низком разрешении
Я читаю те, что нашел в сети. Не скажу что качество совсем уж супер, но вполне ничего себе, читабельно. Могу поделиться, если надо.
Книги очень хорошие, мне больше понравился Джувел Леве, сейчас его как раз и читаю.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
25.12.2015, 10:08  [ТС]
Цитата Сообщение от insite2012 Посмотреть сообщение
больше понравился Джувел Леве
Нашёл в более-менее нормальном качестве дежавю, читаю. Старая книга, но не думаю, что много изменилось.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.12.2015, 10:42
Цитата Сообщение от aquaMakc Посмотреть сообщение
Старая книга, но не думаю, что много изменилось.
Она под .NET 3.5, но там все актуально. В .NET 4.0 добавлено больше упрощений (типа стандартных конечных точек), но в остальном все сходится.
0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
25.12.2015, 11:52  [ТС]
Странно, в книге написано, что ссылки не передаются контрактами Wcf, но я вполне успешно передаю bool и string с модификаторами ref, при этом вполне неплохо клиентом получаю в них значения, записанные на стороне службы.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,768
25.12.2015, 15:41
В официальной документации есть такое:
"However, unlike a local method, in which you can pass references to objects from one object to another, service operations do not pass references to objects. Instead, they pass copies of the objects." (c)

Я так понимаю, тут речь не про невозможность возврата значений через ref-аргументы методов. Просто лишний раз акцентируется внимание на очевидном факте, что серверный метод работает с локальными копиями объектов, а не со ссылками на объекты в адресном пространстве клиента. Т.е. один и тот же метод будет вести себя по-разному в плане модификации входных параметров при локальном и при удалённом вызове.
0
Эксперт .NET
 Аватар для insite2012
5548 / 4311 / 1218
Регистрация: 12.10.2013
Сообщений: 12,371
Записей в блоге: 2
25.12.2015, 18:19
aquaMakc, насколько я понял эту трактовку, под ссылками тут имелось ввиду ссылки на локальные объекты, не являющийся контрактами данных (и не снабженные атрибутом сериализации).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2015, 18:19
Помогаю со студенческими работами здесь

Отменить метод
Только начинаю учиться, поэтому вопрос может быть и глупый, но как "отменить" действие метода ? В главной активити есть pref...

Что делает команда outlook "Отменить запрос к серверу"?
О каком запросе идёт речь?

Подскажите, метод обращения матриц
Здравствуйте, требуется решить слау методом обращения матриц. Проблема в том что нигде не могу найти описание этого метода. Дайте...

Tkinter и обращения к объекту, вызвавшему метод
Для начала — я Полный_Нуб по части Питона. Так что прошу громко не смеяться. Значит приделываю я такой GUI на стандартный калькулятор,...

Функция бана/ метод обращения к бану в phpbb
День добрый. Начал изучать php и ваять простенький спам-фильтр к форуму. Для этих дел выбрал версию phpbb 2.0- почему старую версию? Потому...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru