Сервисная библиотека WCF - звонки из консольного приложения - PullRequest
0 голосов
/ 12 ноября 2009

У меня есть сервисная библиотека WCF с netTcpBinding. Его app.config выглядит следующим образом:

<configuration>
<system.serviceModel>
<bindings>
  <netTcpBinding>
    <binding name="netTcp" maxBufferPoolSize="50000000" maxReceivedMessageSize="50000000">
      <readerQuotas maxDepth="500" maxStringContentLength="50000000" maxArrayLength="50000000" maxBytesPerRead="50000000" maxNameTableCharCount="50000000" />
      <security mode="None"></security>
    </binding>
  </netTcpBinding>
</bindings>

<services>
  <service behaviorConfiguration="ReportingComponentLibrary.TemplateServiceBehavior"
    name="ReportingComponentLibrary.TemplateReportService">
    <endpoint address="TemplateService" binding="netTcpBinding" bindingConfiguration="netTcp"
      contract="ReportingComponentLibrary.ITemplateService"></endpoint>
    <endpoint address="ReportService" binding="netTcpBinding" bindingConfiguration="netTcp"
      contract="ReportingComponentLibrary.IReportService"/>
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" ></endpoint>

    <host>
      <baseAddresses>
        <add baseAddress="net.tcp://localhost:8001/TemplateReportService" />
        <add baseAddress ="http://localhost:8080/TemplateReportService" />
      </baseAddresses>
    </host>
  </service>
</services>

<behaviors>
  <serviceBehaviors>
    <behavior name="ReportingComponentLibrary.TemplateServiceBehavior">
      <serviceMetadata httpGetEnabled="True"/>
      <serviceDebug includeExceptionDetailInFaults="True" />
    </behavior>
  </serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>

Я хочу вызвать его из консольного приложения для тестирования.
Я понимаю, что могу позвонить, добавив Service Reference или прокси-сервер с помощью svcutil.
Но в обоих случаях мой сервис должен быть запущен (я использовал WCF Test Client)

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

Ответы [ 2 ]

0 голосов
/ 12 ноября 2009

Это единственные способы, о которых я могу думать. Тем не менее, мои модули веб-службы обычно очень тонкие , просто простой вызов метода в другой модуль .NET. Вы можете сделать тот же самый вызов из своего консольного приложения или, если это слишком много, создать еще одну .NET DLL, которая представляет такой же вызов для консольного приложения. Это не позволило бы вам протестировать «веб-сервис» как таковой (для определения нагрузки и т. Д.), Но вы все равно будете тестировать функциональность.

0 голосов
/ 12 ноября 2009

В целях тестирования вы можете использовать WcfSvcHost.exe для размещения службы WCF. Чтобы вызвать метод, вам не нужен клиент, вы можете использовать WcfTestClient.exe

...