Форум программистов, компьютерный форум, киберфорум
C#: Веб-сервисы и WCF
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
1

Как понять, когда нужен только односторонний запрос? WCF

25.02.2018, 12:56. Показов 1632. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как понять, когда контракту нужно присвоить IsOneWay = true, где это может быть полезно? так же встречаюсь с тем, что прога выдает ошибку о взаимоблокируемом процессе, которая, как я понял, и решается односторонним запросом. почему одни контракты не жалуются на двусторонний запрос, другие - жалуются?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2018, 12:56
Ответы с готовыми решениями:

Как понять, когда писать через точку (например, TextBlock.ToolTip), а когда не через точку?
<StackPanel> <TextBlock Text="TextTooltip 1" ToolTip="Hello Tooltip" /> <TextBlock...

Как узнать запрос, который посылает ВКонтакте, когда ставят лайк, отправляют запрос дружбы
Поставил себе цель написать программу, которая заходит с нового аккаунта и ставит лайк или...

1c8 когда лучше использовать запрос, а когда выбор
Хочется в целях повышения образованности уточнить такой момент - когда в восьмерке лучше...

Как построить SQL-запрос, чтобы он выводил записи только за сегодня или только за вчерашний день?
В БД есть поле с датой и временм записи. Как построить SQL-запрос, чтобы он выводил записи только...

6
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
25.02.2018, 13:29 2
Лучший ответ Сообщение было отмечено Kamikoto_Sudzuk как решение

Решение

Цитата Сообщение от Kamikoto_Sudzuk Посмотреть сообщение
Как понять, когда контракту нужно присвоить IsOneWay = true, где это может быть полезно?
Это зависит от логики вашего сервиса. Стандартное применение-когда клиента не интересует результат вызова метода сервиса (вызвал и забыл), чтобы не блокировать поток вызова. Также применяется в обратных вызовах, чтобы избежать взаимоблокировки (этого можно избежать и установкой поточного режима службы в многопоточный/реентерабельный).
1
1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
25.02.2018, 13:52  [ТС] 3
Цитата Сообщение от insite2012 Посмотреть сообщение
не интересует результат вызова метода сервиса (вызвал и забыл)
то есть вызвавший все равно ждет, пока закончится исполнение вызванного метода в обоих случаях?
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
25.02.2018, 14:14 4
Цитата Сообщение от Kamikoto_Sudzuk Посмотреть сообщение
вызвавший все равно ждет, пока закончится исполнение вызванного метода в обоих случаях?
В случае с односторонним вызовом-нет, не ждет. Исполняющая среда ставит вызов в очередь (как правило, это происходит очень быстро), после чего управление возвращается вызывающему коду.
1
1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
25.02.2018, 14:33  [ТС] 5
insite2012, и что тогда делать, если я хочу, чтоб сервер дождался окончания callback метода, но мне все время нужно было делать контракт односторонним?

Добавлено через 1 минуту
insite2012, а, точно, ответ выше

Добавлено через 24 секунды
спасибо. Как всегда, вы - один в поле воин)

Добавлено через 1 минуту
insite2012, и все же, хотелось бы простым языком уточнить: то есть, чтобы избежать взаимоблокировки, мне нужно вызвать один из методов в отдельном потоке?
0
Эксперт .NET
5534 / 4298 / 1217
Регистрация: 12.10.2013
Сообщений: 12,332
Записей в блоге: 2
25.02.2018, 14:45 6
Цитата Сообщение от Kamikoto_Sudzuk Посмотреть сообщение
чтобы избежать взаимоблокировки, мне нужно вызвать один из методов в отдельном потоке?
Нет.
1. Сделать метод обратного вызова односторонним.
2. Настроить реализацию контракта службы как мультипоточная/реентерабельная (свойство ConcurrencyMode атрибута ServiceBehavior установить в Multiple/Reenterant).
1
1 / 1 / 1
Регистрация: 09.12.2017
Сообщений: 90
25.02.2018, 14:47  [ТС] 7
insite2012, аа ясно. спасибо
0
25.02.2018, 14:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2018, 14:47
Помогаю со студенческими работами здесь

Как быть, когда блок finally нужен и как применить com.google.common.io.Closer
вот например в таком случае. import javax.naming.Context; import javax.naming.InitialContext;...

не могу понять как реализовать запрос
Здравствуйте, не могу понять как реализовать запрос. Итак, имеется таблица с id обекта и...

Тип void как возвращаемое значение функции: что он такое, зачем он нужен, где, когда и как его использовать?
Объясните пожалуйста про Void для оооочень далекого человека. Читаю книгу Шилдта, в принципе всё...

Считывание файла только когда он изменился - как организовать?
Допустим мне нужно много раз в секунду считывать содержимое txt-файла. В нем записан один байт. В...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru