2009-04-13 5 views
1

J'essaie de faire fonctionner le ICMP code found here. Cependant sur cette ligne:ICMP en C#, SocketException - Interdit par les autorisations d'accès

Socket = new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork, 
             System.Net.Sockets.SocketType.Raw, 
             System.Net.Sockets.ProtocolType.Icmp); 

Je reçois SocketException: « Une tentative d'accès à une prise de manière interdite par ses autorisations d'accès » (code d'erreur natif: 10013)

en cours en mode administrateur est une (mauvaise) solution, mais puisque je veux que mon programme fonctionne au niveau de l'utilisateur, que suggérez-vous? D'autres approches ICMP sont également les bienvenues.

J'ai essayé de jouer avec les paramètres de sécurité "ClickOnce", ce qui n'a pas aidé.

Répondre

2

ICMP sockets raw et sont limitées aux utilisateurs d'administrateur depuis Windows 2000. Vous ne l'avez pas dit ce que vous essayez de faire, mais vous pouvez essayer l'espace de noms NetworkInformation pour atteindre votre objectif: NetworkInformation

Il comprend un Ping class pour envoyer des demandes d'écho ICMP.

Questions connexes