0

Вот мое понимание того, как размещается проект библиотеки wcf. После создания проекта библиотеки ФОС у вас есть свой app.config следующим образом:Может ли клиент wcf настраиваться с помощью разметки так же, как размещается библиотека wcf?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 

    <system.web> 
    <compilation debug="true" /> 
    </system.web> 
    <!-- When deploying the service library project, the content of the config file must be added to the host's 
    app.config file. System.Configuration does not support config files for libraries. --> 
    <system.serviceModel> 
    <services> 
     <service name="WcfLib.Service1"> 
     <host> 
      <baseAddresses> 
      <add baseAddress = "http://localhost:8732/Design_Time_Addresses/WcfLib/Service1/" /> 
      </baseAddresses> 
     </host> 
     <!-- Service Endpoints --> 
     <!-- Unless fully qualified, address is relative to base address supplied above --> 
     <endpoint address ="" binding="wsHttpBinding" contract="WcfLib.IService1"> 
      <!-- 
       Upon deployment, the following identity element should be removed or replaced to reflect the 
       identity under which the deployed service runs. If removed, WCF will infer an appropriate identity 
       automatically. 
      --> 
      <identity> 
      <dns value="localhost"/> 
      </identity> 
     </endpoint> 
     <!-- Metadata Endpoints --> 
     <!-- The Metadata Exchange endpoint is used by the service to describe itself to clients. --> 
     <!-- This endpoint does not use a secure binding and should be secured or removed before deployment --> 
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> 
     </service> 
    </services> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior> 
      <!-- To avoid disclosing metadata information, 
      set the value below to false and remove the metadata endpoint above before deployment --> 
      <serviceMetadata httpGetEnabled="True"/> 
      <!-- To receive exception details in faults for debugging purposes, 
      set the value below to true. Set to false before deployment 
      to avoid disclosing exception information --> 
      <serviceDebug includeExceptionDetailInFaults="False" /> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

</configuration> 

Вы можете просто создать пустой проект консольного приложения (просто положить в него Console.ReadLine()), и добавить ссылку на предыдущую сборки проекта и добавьте весь тег services, как показано выше. Теперь его размещение. Он живет до тех пор, пока работает консольное приложение.

Обратите внимание на шаблон, в котором была написана разметка, чтобы сделать эту работу. Все в <services/> означает объект службы wcf, который должен быть размещен. В этом случае хостинг выполнялся через conifugration через мое консольное приложение.

Я смотрю, могу ли я следовать аналогичной аналогии для потребления услуг wcf. Могу ли я написать свой wcf-клиент, используя тот же шаблон конфигурации? В конечном итоге я рассматриваю возможность размещения этих конфигураций в отдельном файле конфигурации.

Here are links of previous posts if you are interested in what made me ask this question

+0

Вы пробовали писать пустое консольное приложение, добавив, справочный и Ме- ханизма услуги тега? Было ли это организовано? Как-то кажется магией :) –

+0

Он вызывает приложение утилиты WCF Service Host ...! – deostroll

+0

Из Visual Studio? –

ответ

1

Ваш сервис сам по себе не пройдет. Когда вы отлаживаете свою библиотеку WCF, WCF Service Host запускается вашим отладчиком для размещения вашего сервиса. Вы должны сделать это вручную в реальной среде.

Читайте о WCF Service Host here.

Edit:

И отвечая на Ваш вопрос: Да, вы можете настроить клиента таким же образом. См. this article

+0

+1 для исправления меня. Но любая идея о том, будет ли работать с клиентом wcf-клиента одним и тем же * шаблоном *? – deostroll

+0

Я отредактировал свой ответ, чтобы задать ваш вопрос. –

+0

Это та же самая разметка, которую вы получаете через VS при добавлении сервиса Если у вас было 2 или более сервисов для подключения, тогда раздел serviceModels будет выглядеть огромным ... Я смотрю на его модульность, управляя ABC отдельно? В основном перемещая их в отдельные файлы ... – deostroll