WCF - 无法停止net.tcp绑定(在IIS上托管)

时间:2015-12-17 16:17:15

标签: c# wcf iis tcp

我在IIS上使用配置的net.tcp端点工作WCF服务。在IIS上禁用页面后,我仍然可以向我的服务 o.O 运行请求。 禁用应用程序池按预期工作(服务不再可用)。

<system.serviceModel>
    <services>
      <service name="xyz.Service.Authentication.Implementation.AuthenticationService">
        <endpoint binding="netTcpBinding"
                  bindingConfiguration="NetTcpBinding"
                  contract="xyz.Service.Authentication.Model.IAuthenticationService"/>
      </service>
    </services>
    <bindings>
      <netTcpBinding>
        <binding name="NetTcpBinding" sendTimeout="00:00:30" 
                 transactionFlow="false" 
                 portSharingEnabled="false"
                 maxReceivedMessageSize="18000">
          <security mode="Transport">
            <transport clientCredentialType="Windows" protectionLevel="Sign"/>
          </security>
        </binding>
      </netTcpBinding>
    </bindings>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceAuthorization principalPermissionMode="UseWindowsGroups"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>

是错误还是功能?

1 个答案:

答案 0 :(得分:1)

我有类似的问题,我发现:

  • 停止网站停止net.tcp服务
  • 禁用应用程序池禁用服务但释放端口, SMSvcHost.exe仍然使用端口
  • 之后重新启动也没有帮助。

自由端口(由其他东西使用)的唯一方法是在IIS中删除net.tcp绑定

我花时间在这上面,因为从net.tcp服务收到了错误的答案。我花了很长时间才发现 - 这不是来自我的服务,而是来自旧的残疾人。这可以为其他人节省时间。

Delete net.tcp binding