使用另一个用户名启动服务后,WCF会给出错误10061

时间:2017-07-10 08:32:37

标签: wcf wcf-security

我在专用的Windows服务器上运行了一年多的服务。 在我的客户端计算机上,我有一个winforms客户端,使用WCF与此服务进行通信

现在一年多没有问题 但是现在公司政策已经改变,我不得不使用另一个帐户而不是域\管理员帐户启动服务 使用的帐户也是域帐户,并且具有管理员权限。

但由于我的winforms客户端无法再连接到它,我总是会收到此错误:

---------------------------
Could not connect to net.tcp://localhost:8001/CommunicationService. 
The connection attempt lasted for a time span of 00:00:02.0176000. 
TCP error code 10061: No connection could be made because the target machine actively refused it 127.0.0.1:8001. 
---------------------------

所以我想我需要做一些事情的权利,但我不知道这里 有人可以解释一下我需要做些什么才能让它再次起作用吗?

请记住,服务和客户端都不会以任何方式更改,并且在我必须使用其他用户帐户启动服务之前,它才能完美运行。
所以它不应该是我认为的防火墙问题,也不应该是我的代码中的任何错误。

编辑:
这是服务的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
   <system.serviceModel>
      <services>
         <service name="CommunicationService" behaviorConfiguration="debug">
            <endpoint address="net.tcp://localhost:8001/CommunicationService" binding="netTcpBinding" contract="ICommunication"/>
         </service>
      </services>
    <bindings>
      <netTcpBinding>
        <binding>
          <security mode="None"></security>
        </binding>
      </netTcpBinding>
    </bindings>
      <behaviors>
        <serviceBehaviors>
          <behavior name="debug">
            <serviceDebug includeExceptionDetailInFaults="true" />
          </behavior>
        </serviceBehaviors>
      </behaviors>
   </system.serviceModel>
</configuration>

这是我客户的配置:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
    </startup>
  <system.serviceModel>
    <client>
      <endpoint address="net.tcp://192.0.137.198:8001/CommunicationService" binding="netTcpBinding" contract="ICommunication"/>
    </client>
    <bindings>
      <netTcpBinding>
        <binding sendTimeout="00:00:05">
      <security mode="None"></security>
    </binding>
      </netTcpBinding>
    </bindings>
  </system.serviceModel>  
</configuration>

编辑:

如果我在与服务相同的计算机上运行客户端而不是它的工作。 我试过这个

netsh http add urlacl url=http://127.0.0.1:8001/MyUri user=domain\user 

但这里没有帮助。我在这里找到了这个命令HTTP could not register URL http://+:8000/HelloWCF/. Your process does not have access rights to this namespace,但我不知道我需要使用哪些参数

1 个答案:

答案 0 :(得分:0)

让它运转起来。 似乎我的客户端配置文件错误,其端点设置为127.0.0.1而不是指向正确的服务。