2012-02-17 2 views
0

Я создал службу WCF с некоторыми конечными точками (с конечной точкой mex). Если я создать, например, хост консоли, и превратите это в мой главный:Приложение WCF Host, добавив ссылку на услугу?

ServiceHost host = new ServiceHost(typeof(HelloWorld)); 

host.Open(); 

Console.WriteLine("The service is ready at!"); 
foreach (ServiceEndpoint se in host.Description.Endpoints) 
      Console.WriteLine(se.Address.ToString()); 
     Console.WriteLine("Press <Enter> to stop the service."); 
Console.ReadLine(); 

// Close the ServiceHost. 
host.Close(); 

Можно ли генерировать app.config на hostside путем добавления ссылки на службу, или мне нужно создать приложение настроить мое я и сделать его похожим на конечные точки службы wcf?

Рядом с этим, как возможно, что какой-либо другой компьютер в локальной сети может получить доступ к этому хосту?

(PS что это значит: служба может включать в себя конечную точку mex, которая получает ABC от службы и возвращает WSDL. (ТЕПЕРЬ НЕ ПОНИМАЮЩАЯ ЧАСТЬ) После получения WSDL создаются два артефакта : прокси-класс на языке проекта и файл app.config. Прокси-класс отражает подпись операций с конечными точками, поэтому клиентский код может просто «вызывать» конечную точку. Интерфейс прокси-сервера не обязательно должен быть идентичен сигнатуру службы, но прокси должен обеспечить, чтобы сообщение, переданное службе, было точно тем, что описано в контракте на обслуживание. (ОК ЧТО?)

ответ

0

1) Вы должны указать конечные точки (A-Address, B- Binding, C-contract) в app.config, и этот app.config должен быть с вашим хост-приложением (Your co nsole приложение в данном случае) 2) Данная услуга может быть признана в локальной сети, если некоторый клиент запускает командную строку Visual Studio и работает this-

SvcUtil http://localhost/MyService/MyService.svc /out:c:\Proxy.cs (изменить пример команды различных значений согласно вашему делу ...)

Здесь Proxy.cs содержит класс прокси, клиент должен добавить это в решение и называет метод прокси-класса в том же каталоге, где существует этот Proxy.cs, вы найдете 1.config, вставьте содержимое этого файла в файл app.config клиента. 3) Конечная точка MEX требуется для обмена метаинформацией.

+0

Нужно ли мне настраивать и обслуживать app.config и host app.config? – skyyyy

+0

Вам необходимо настроить два .config, 1 для хост-приложения, как указано в пункте 1 выше, второе, которое вы получаете по svcutil, этот второй должен быть настроен с клиентом. – sanguine

0

В вашем первом вопросе я предполагаю, что вы имеете в виду «клиент», когда вы сказали «хозяин». Для этого вы должны поместить Uri в конструктор ServiceHost в свой код. .

ServiceHost host = new ServiceHost(typeof(HelloWorld), new Uri("http://localhost:1234/helloworld", UriKind.Absolute)); 

Затем щелкните правой кнопкой мыши ваш проект и перейдите в раздел «Отладка/запуск нового экземпляра». Теперь ваша служба работает и работает под данным Uri. В Visual Studio перейдите в меню Debug вверху и выберите «Отсоединить все». Теперь ваше приложение с сервисом все еще работает. Теперь вы можете перейти к проекту своего клиента и добавить ссылку на службу, как вы привыкли. Просто заполните Uri в диалоговом окне «Добавить службу».

За последний вопрос. Это просто означает, что визуальная студия создает локальный файл для вашей справочной службы и что в качестве разработчика вы должны использовать этот класс клиента, как если бы это была сама служба, и что она работает :-)

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