【发布时间】:2017-10-06 13:05:14
【问题描述】:
运行 WCF 服务以在本地计算机上进行测试。在 App.config 我有:
<system.serviceModel>
<services>
<service name="Pizza.Services.PizzaService">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733"/>
</baseAddresses>
</host>
<endpoint address="pizza"
binding="basicHttpBinding"
contract="Pizza.Services.IPizzaService">
</endpoint>
<endpoint address="net.tcp://localhost:8733/pizza"
binding="netTcpBinding"
contract="Pizza.Services.IPizzaService">
</endpoint>
</service>
</services>
如果我从 VS2015 运行应用程序(作为普通用户或管理员),我会得到:
TCP 错误(10013:试图以某种方式访问套接字 被其访问权限禁止)在侦听 IP 时发生 端点=0.0.0.0:8733。 ---> System.Net.Sockets.SocketException:一个 试图以访问禁止的方式访问套接字 权限
现在我的同事含糊地解释了 Windows 10 的一项安全功能,该功能将阻止用户获取随机端口并将其提供给某些服务。所以我以管理员身份打开命令提示符并做了:
netsh http add urlacl url=http://+:8733/ user=Everyone
还是同样的错误。
我注意到类似的问题,但我觉得它们都没有解决我的问题。
编辑:我忘记提及的另一件事是我尝试关闭防火墙和防病毒但没有成功。
【问题讨论】:
-
您拥有的错误消息文本看起来与 netsh urlacl 权限不同。你能帮我理解你的配置吗?您是否定义了侦听相同端口 8733 的端点(http 和 net.tcp)?它允许吗?尝试删除其中一个(net.tcp)并运行应用程序
-
感谢您的评论。一分钟前注意到了。