2017-10-06 79 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

相關問題