错误“尝试以访问权限禁止的方式访问套接字”

Jak*_*kov 1 .net c# sockets wcf

运行 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>
Run Code Online (Sandbox Code Playgroud)

如果我从 VS2015 运行应用程序(作为普通用户或管理员),我会得到:

侦听 IP Endpoint=0.0.0.0:8733 时发生 TCP 错误(10013:尝试以访问权限禁止的方式访问套接字)。---> System.Net.Sockets.SocketException: 试图以访问权限禁止的方式访问套接字

现在,我的同事模糊地解释了 Windows 10 安全功能,该功能将防止用户获取随机端口并将其提供给某些服务。所以我以管理员身份打开命令提示符并执行以下操作:

netsh http add urlacl url=http://+:8733/ user=Everyone
Run Code Online (Sandbox Code Playgroud)

还是一样的错误。

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

编辑:我忘记提及的另一件事是我尝试关闭防火墙和防病毒软件但没有成功。

Jak*_*kov 5

端点绑定把事情搞砸了。我已经改变了端口:

<endpoint address="net.tcp://localhost:8733/pizza"
                  binding="netTcpBinding"
                  contract="Pizza.Services.IPizzaService">
</endpoint>
Run Code Online (Sandbox Code Playgroud)

从 8733 到 8732 并且它有效。基本上,两个端点试图使用同一个端口。