为 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
之外的其他文件夹可能会很棘手
我正在尝试部署我在 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
之外的其他文件夹可能会很棘手