我有一个带有netTcpBinding的WCF服务库。它的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>
我想从控制台应用程序中调用它以进行测试 我知道我可以通过添加服务引用或使用svcutil添加代理来调用 但在这两种情况下,我的服务都需要启动并运行(我使用的是WCF测试客户端)
我可以通过控制台应用程序调用和测试服务方法吗?
答案 0 :(得分:0)
出于测试目的,您可以使用WcfSvcHost.exe来托管您的WCF服务。要在其上调用方法,您不需要可以使用WcfTestClient.exe
的客户端答案 1 :(得分:0)
这是我能想到的唯一方法。但是,我的Web服务模块通常非常 thin ,只是调用另一个.NET模块的简单方法。您可以从Console应用程序进行相同的调用,或者如果暴露太多,则创建另一个.NET DLL,为控制台应用程序公开相同的调用。它不会让你测试“web服务”本身(负载等),但你仍然会测试功能。