为 Visual Studio 2013 添加 WCF Tcp.net 服务到 IIS 以及如何测试它

Adding a WCF Tcp.net service to IIS for Visual Studio 2013 and how to test it

我正在尝试部署我在 Visual studio 中创建的 wcf 服务。 我几乎可以肯定这是 wcf 服务配置或 IIS 本身的配置问题。

我在服务中使用的配置如下:

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>
<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior name="CandidateServiceBehavior">
      <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
      <serviceDebug includeExceptionDetailInFaults="true" />
      <serviceThrottling maxConcurrentCalls="500" maxConcurrentSessions="500" maxConcurrentInstances="500" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<services>
  <service name="SurveyService.SurveyService" behaviorConfiguration="CandidateServiceBehavior">
    <endpoint address="/Survey/SurveyService" binding="netTcpBinding" name="CandidateServiceEndPoint" contract="Prometric.Census.SurveyService.ISurveyService" />
    <endpoint address="/Survey/SurveyService/mex" binding="mexTcpBinding" contract="IMetadataExchange" />
  </service>
</services>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="false" />
</system.serviceModel>

我从 visual Studio 部署了一次服务,并在 IIS 上指向一个新站点,并使用以下指向部署文件夹的设置

然后在 IIS 中您可以看到站点处于未知状态:

从这里我无法连接到该服务或无法找到它是否 运行。我已经尝试了命令 /an : find /i "9015" 但什么也没找到所以我假设服务甚至没有 运行.

如果我在何处更改 WCF 服务和 IIS 上的绑定以改用 http,则一切正常。 (应该说使用 http 不是一个选项)

此外,除了没有启动服务之外,运行 我不确定如何将服务作为 TCP 进行测试,我是否可以像使用 http 服务一样添加服务引用?如您所见,我对 tcp 方面的事情还很陌生,如果我遗漏了任何重要信息,请告诉我,以便我可以将其包含在问题中。

这可能对您有帮助:

https://rohitguptablog.wordpress.com/2011/06/16/configuring-wcf-service-with-nettcpbinding/

我按照这个指南制作了一个 net.tcp wcf 服务并且很顺利。另外,您确定您的文件夹具有所需的权限吗?使用除 wwwroot/inetpub

之外的其他文件夹可能会很棘手