2013-10-03 3 views
1

Я разработчик новичка для служб WCF и Windows. Я знаю C#. Для сценария требуется, чтобы различные пользовательские приложения, работающие в Windows 7, вызывали методы в другом приложении. Это отношение клиент/сервер, все работает на одном компьютере. Сервер должен иметь возможность уведомлять каждого клиента (по одному за раз), когда возникает указанное условие.WCF, служба Windows - необходимо уведомить клиентское приложение

Мне нужно только разработать код сервера.

Будет следующее приемлемое решение:

Сделать сервер сервис окон, который использует WCF. Сервер мог уведомлять клиентов, используя другой именованный канал для каждого клиента?

Спасибо ... любые предложения будут оценены.

+0

Это должно сработать. – PoweredByOrange

+0

Возможный дубликат [WPF/WCF Push Notification] (http://stackoverflow.com/questions/721708/wpf-wcf-push-notification) –

ответ

1

Просто используйте duplex связь по каналам tcp/named/msmq/http (WSDualHttpBinding). AFAIK вам нужны два порта (вкл/выкл) для дуплексного соединения по http

+0

Если все работает на той же машине, почему он будет использовать http? –

+0

SOA: масштабируемость в уме (но мне нравится tcp) – SalientBrain

+0

И AFAIK WCF tcp/named pipes теперь рекомендуемый способ для межпроцессного взаимодействия, а не для удаленного доступа. Программирование сокетов и использование файлов с отображением mamory по-прежнему доступны, но сложный – SalientBrain

0

Я бы полностью отключил wcf. Хотя, как говорит Брайан, вы можете использовать дуплексные привязки, в лучшем случае они сложны.

Если все будет запущено на одном компьютере, зачем вам нужен клиент/сервер? Просто создайте одного клиента, который сделает все, что вам нужно.

+0

Другие организации будут предоставлять приложения, которые вызывают мое приложение. Кроме того, мое приложение должно иметь возможность вызывать метод обратного вызова в своих приложениях для уведомления об определенных событиях. Вы правы, что все приложения (предоставляемые другими организациями, а также мое приложение) будут установлены и запущены на одном компьютере. Я не уверен, как сделать это в одном клиенте. – user2843693

0

Это приемлемое решение и должно работать нормально.

Другой вариант для рассмотрения (в духе обучения) - это создание службы маршрутизации в качестве промежуточной службы, которая порождает вызовы нескольких служб. Так что в вашем случае, ваш клиент будет вызывать службу маршрутизации и службу маршрутизации в свою очередь, созвонимся вашей службы

Следующая ссылка должна предоставить более подробную информацию о службе маршрутизации ...

[Routing Service] [ 1]

http://msdn.microsoft.com/en-us/library/ee517423.aspx

Смежные вопросы