Именованные каналы WCF в приложении WPF - PullRequest
3 голосов
/ 22 июня 2009

Как бы вы запустили службу именованных каналов WCF в фоновом режиме Windows-приложения WPF? Кажется, я не могу найти примеры запуска сервера WCF в приложении WPF.

Есть идеи?

В настоящее время я использую следующий код в Application_Startup. Это нужно запускать с собственным потоком?

    Using Host As ServiceModel.ServiceHost = New ServiceModel.ServiceHost(GetType(Service), New Uri(("net.pipe://localhost")))
        '
        Host.AddServiceEndpoint(GetType(IService), New ServiceModel.NetNamedPipeBinding, "Test")
        Host.Open()
        '
    End Using

Ответы [ 2 ]

2 голосов
/ 22 июня 2009

Джувал Лоуи предоставляет вспомогательные классы в своей библиотеке ServiceModelEx вместе с информацией о том, как запускать компоненты WCF внутри процесса, что, вероятно, вы захотите сделать со своим компонентом WCF, поскольку вы хотите использовать именованные каналы, которые требует, чтобы компонент работал на той же машине, что и ваше приложение WPF.

Предлагаю прочитать о классе InProcFactory, начиная со страницы 60 2-го издания " Программирование служб WCF " Ювала Лоуи. По сути, это «библия» WCF.

Это покажет вам, как именно разместить ваш компонент в процессе, используя его вспомогательные классы.

0 голосов
/ 22 января 2010

Я удалил блок использования кода и настроил ServiceHost как частную переменную в классе приложения WPF. Затем я закрываю ServiceHost при выходе из приложения. Кажется, работает нормально.

...