2017-10-06 82 views
1

为运行在本地机器上测试的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:尝试到做8733:访问的方式插座 通过其访问权限禁止的),而在IP 终点= 0.0.0.0听发生。 ---> System.Net.Sockets.SocketException:一个 试图通过其禁止接入的方式访问插座 权限

现在我的同事有关Windows 10安全功能已隐约解释这将阻止用户抓取随机端口并将其提供给某些服务。所以我打开命令提示符作为管理员和做:

netsh http add urlacl url=http://+:8733/ user=Everyone 

仍然是同样的错误。

我已经注意到了类似的问题,但他们没有解决我的问题,我觉得。

编辑:还有一件事我忘了提的是,我已经试过关掉firewal和防病毒没有成功。

+2

你有错误消息文本不看类似的netsh urlacl权限。你能帮我理解你的配置吗?你是否定义了端点(http和net.tcp),它们监听同一端口8733?它允许吗?尝试删除其中的一个(net.tcp)并运行应用程序 – oleksa

+0

感谢您的评论。注意到它只是一分钟前。 – Jakov

回答

2

端点结合是拧的事情了。我已经改变了端口:

<endpoint address="net.tcp://localhost:8733/pizza" 
        binding="netTcpBinding" 
        contract="Pizza.Services.IPizzaService"> 
</endpoint> 

从8733到8732,它的工作原理。基本上,两个端点试图使用相同的端口。

+0

我刚碰到同样的问题。我有一个wsHttpBinding和mexHttpBinding在同一个端口上监听(特别是9991)。我将其中一个更改为9992并解决了问题。 – Nikola

相关问题