使用另一个用户名启动服务后,WCF 给出错误 10061
Posted
技术标签:
【中文标题】使用另一个用户名启动服务后,WCF 给出错误 10061【英文标题】:WCF gives error 10061 after starting the service with another username 【发布时间】:2017-12-13 21:44:45 【问题描述】:我有一项服务在专用 Windows 服务器上运行了一年多。 在我的客户端计算机上,我有一个使用 WCF 与此服务通信的 winforms 客户端
这已经工作了一年多没有问题了。 但现在公司政策发生了变化,我不得不使用域\管理员帐户以外的另一个帐户启动服务。 使用的帐户也是域帐户,并且具有管理员权限。
但由于我的 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】:让它工作。 看来我的客户端配置文件错误,它的端点设置为 127.0.0.1 而不是指向正确的服务。
【讨论】:
以上是关于使用另一个用户名启动服务后,WCF 给出错误 10061的主要内容,如果未能解决你的问题,请参考以下文章