我创建了一个具有Datacontract和服务契约及其实现的类库。然后我创建了一个控制台应用程序来托管wcf服务。我已经在app.config文件中定义了WCF设置,该文件位于
<configuration>
<system.serviceModel>
<services>
<service name="TestService.TestService" behaviorConfiguration="tcpbindingConfiguration">
<host>
<baseAddresses>
<add baseAddress="net:tcp://FullComputerName:9002/TestService"/>
</baseAddresses>
</host>
<endpoint address="net:tcp://FullComputerName:9002/TestService" binding="netTcpBinding" contract="TestService.ITestServiceContract"></endpoint>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="tcpbindingConfiguration">
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
然后我program.cs文件。
ServiceHost sh = null;
try
{
sh = new ServiceHost(typeof(TestService.TestService));
sh.Open();
Console.WriteLine("Service started at net:tcp//FullComputerName:9002/TestService");
}
catch (Exception ex)
{
sh = null;
Console.WriteLine("Service cann't started");
throw;
}
我已经开启和关闭Windows功能的非HTTP WCF。
我想在控制台应用程序中托管这个wcf服务,有些文章建议我需要在IIS中设置nettcp绑定。为什么我这样做?
答案 0 :(得分:0)
IIS是您的WCF服务的替代托管,即您可以在控制台应用程序或IIS中托管它。据我所知,如果您使用控制台应用程序,则不需要设置IIS。
尝试更改&#34; net:tcp&#34;在你的配置中&#34; net.tcp&#34;。