Как сделать WCF хостинг в консольном приложении? - PullRequest
3 голосов
/ 16 декабря 2009

Как разместить библиотеку классов WCF в консольном приложении? У меня есть служба WCF в библиотеке классов , и я хотел протестировать службу вне моего проекта с помощью тестового приложения (я должен сделать это вне проекта)

Ответы [ 3 ]

2 голосов
/ 16 декабря 2009

Создайте простое консольное приложение, добавьте ссылку на вашу сервисную сборку WCF, а затем в основном напишите следующие строки:

   static void Main(string[] args)
    {
        using (ServiceHost host = new ServiceHost(typeof(Namespace.YourWCFService)))
        {
            host.Open();

            Console.WriteLine("Service host running......");

            foreach (ServiceEndpoint sep in host.Description.Endpoints)
            {
                Console.WriteLine("  endpoint {0} ({1})", 
                                  sep.Address, sep.Binding.Name);
            }

            Console.ReadLine();

            host.Close();
        }
    }

Все, что вы делаете, это устанавливаете ServiceHost и передаете ему тип класса обслуживания (реализации), а затем в основном вызываете .Open() для него.

Console.ReadLine() просто подождите, пока кто-нибудь нажмет ENTER, а затем завершит работу хоста службы.

Вот и все! (конечно, вам нужно указать адрес службы и привязки в app.config для приложения консоли хоста службы, чтобы оно работало)

0 голосов
/ 16 декабря 2009

Рассмотрите возможность использования приложения узла службы WCF: http://msdn.microsoft.com/en-us/library/bb552363.aspx

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

0 голосов
/ 16 декабря 2009

Вы можете создать ServiceHost в своем консольном приложении с существующим контрактом на обслуживание (из вашей библиотеки классов). После запуска службы ваш тестовый проект может получить доступ к службе WCF как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...