2017-10-06 3 views
1

Exécution d'un service WCF pour test sur une machine locale. En App.config je:Erreur "Une tentative d'accès à une socket a été effectuée d'une manière interdite par ses autorisations d'accès"

<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> 

Si je lance l'application de VS2015 (en tant qu'utilisateur régulier ou administrateur), je reçois:

Une erreur TCP (10013: Une tentative a été faite à accéder à une socket d'une manière interdite par ses autorisations d'accès) s'est produite lors de l'écoute sur IP Endpoint = 0.0.0.0: 8733. ---> System.Net.Sockets.SocketException: Une a tenté d'accéder à une prise de manière interdite par son accès autorisations

Maintenant, mon collègue a vaguement expliqué sur une fonction de sécurité Windows 10 Cela empêchera les utilisateurs de saisir un port aléatoire et de le donner à un service. J'ai donc ouvert l'invite de commande en tant qu'administrateur et l'ai fait:

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

Toujours la même erreur.

J'ai remarqué des questions similaires, mais aucune d'elles ne résout mon problème, je pense.

EDIT: Une chose que j'ai oublié de mentionner est que j'ai essayé d'éteindre le firewal et l'anti-virus sans succès.

+2

Le texte du message d'erreur que vous avez ne ressemble pas à celui des permissions de netsh urlacl. Pourriez-vous s'il vous plaît m'aider à comprendre votre configuration? Avez-vous défini des points de terminaison (http et net.tcp) qui écoutent le même port 8733? C'est autorisé? Essayez d'en supprimer un (net.tcp) et lancez l'application – oleksa

+0

Merci pour le commentaire. Remarqué il y a juste une minute. – Jakov

Répondre

2

Une liaison de point d'extrémité était vissée. J'ai changé le port dans:

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

de 8733 à 8732 et cela fonctionne. Fondamentalement, deux points de terminaison essayaient d'utiliser le même port.

+0

Je viens de rencontrer le même problème. J'ai eu une wsHttpBinding et une écoute mexHttpBinding sur le même port (en particulier 9991). J'ai changé l'un d'eux à 9992 et résolu le problème. – Nikola