es wurde versucht, Zugriff auf einen socket in einer Weise forbbiden durch seine Zugriffsberechtigungen. warum?
private void StartReceivingData(string ipAddress, int iPort)
{
try
{
if (!_bContinueReciving)
{
//initializeMainSocket(ipAddress, iPort);
_mSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);//<------HERE IS RAISED THE EXCEPTION
_mSocket.Bind(new IPEndPoint(IPAddress.Parse(ipAddress), iPort));
// _mSocket.Bind(new IPEndPoint(IPAddress.Loopback, iPort));
_mSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
_mSocket.IOControl(IOControlCode.ReceiveAll, new byte[4] { 1, 0, 0, 0 }, new byte[4] { 0, 0, 0, 0 });
//var 1
_mSocket.BeginReceive(_buffReceivedData, 0, _buffReceivedData.Length, SocketFlags.None,
new AsyncCallback(OnReceive), null);
initializeLocalSocket();
}
else
{
_bContinueReciving = false;
_mSocket.Close();
}
}
catch (Exception exception)
{
Debug.WriteLine(exception);
}
}
Ich verstehe nicht, warum...es hat funktioniert und jetzt tut es das nicht. könnte mir jemand helfen?
ich bin streaming mit vlc, und ich wan ' T zu empfangen, die Pakete, einige Berichte und dann restream auf einen lokalen player
- Wenn die Ausnahme ist das geschehen bei der ERSTELLEN, die ich erwarte, dass Sie müssen als Administrator ausgeführt werden, um RAW-sockets erstellen.
- Sehr verwandt, wenn nicht doppelte von es wurde versucht, Zugriff auf einen socket in a way forbidden by its access permissions
- Ich habe gesehen, dass ein blockieren durch die
AV
mit dieser Ausnahme: > 02/01/2017 15:02:18 Blockiert durch port-blockierungsregel F:\Program > Files\AccessLayers\PortNox\Bin\PortNoxSvc.exe Anti-virus-Standard - > Schutz:Verhindern, dass Massen mailing-Würmer senden von E-mail-Fach.x.x.x:25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahrscheinlich die Buchse gehalten wird, die von irgendeinem Prozess. Verwenden
netstat -o
zu finden, die man.netstat -o
zeigt, dass es nicht jede app, die derzeit zu besetzen, dass die port. Das ist wirklich macht mich verrückt.netstat -ao
beinhaltet, dass die ports offen zum Zuhören, odernetstat -ano
wenn Sie möchten, sparen Sie bis auf DNS-lookup, odernetstat -ano | find ":80"
zu filtern z.B. durch port # 80Reload Visual Studio mit Administrator-Privilegien. Windows Sockets (WinSock) wird Ihnen nicht erlauben, erstellen Sie eine SocketType.RAW-Socket ohne Lokale Admin. Und denken Sie daran, dass Ihre Lösung benötigen erhöhte Berechtigungen ausgeführt werden, wie erwartet!
Naja ich weiß nicht und verstehe auch nicht der Schuldige für dieses problem. Aber in meinem Fall das problem ist völlig anders. Ich habe versucht, läuft
netstat -o
odernetstat -ab
zeigen beide, dass es nicht jede app derzeit lauscht auf port 62434 das ist die, die meine app versucht, hören Sie auf. So ist es wirklich verwirrend für mich.Ich habe nur versucht, zu denken, was ich gemacht hatte, so dass er aufgehört zu arbeiten (es funktionierte vor). Gut, dann dachte ich an das Internet zu teilen ich habe auf meinem Ethernet-adapter mit einem eigenen virtuellen LAN (mit Hyper-v in Windows 10). Ich brauchte nur zum ausschalten der Freigabe und es funktionierte wieder einwandfrei.
Hoffe, dies hilft jemand anderes mit dem gleichen Problem. Und natürlich, wenn jemand erklären könnte, fügen Sie bitte weitere Details in Ihrer eigenen Antwort oder vielleicht als ein Kommentar auf meine Antwort.
netstat
trifft nicht aufdecken, etwas in Bezug auf diese. Wer weiß, warum?Ich habe dieses problem beim Versuch, starten Sie eine dotnet-Core-Projekt mit dotnet führen, wenn er versucht, Bindung an den port hat.
Das problem wurde dadurch verursacht, dass ein Visual Studio-2017-Instanz mit dem Projekt öffnen - ich hatte zuvor begann das Projekt über VS für das Debuggen und es scheint, dass es war das festhalten an den Hafen, obwohl das Debuggen beendet hatte, und die Anwendung erschien geschlossen.
Schließen der Visual Studio-Instanz laufen "dotnet run" wieder das problem gelöst.
Dies ist der Fehler, der zurückgegeben wird, wenn die Windows-Firewall blockiert den port (out-going). Wir haben eine strenge web-server, so dass die ausgehenden Anschlüsse standardmäßig blockiert sind. Alle die ich tun musste, war, um eine Regel zu erlauben, die TCP-port-Nummer in wf.msc.
Ich hatte ein ähnliches problem, aber ich fixierte es mit, indem Sie einige änderungen in der firewall-Einstellung.
Können Sie die unten aufgeführten Schritte,
Klicken Sie auf "Windows-Firewall"
Innerhalb der Windows-Firewall, klicken Sie auf "Zulassen ein Programm oder feature durch die Windows-Firewall"
Nun auch innerhalb von Programmen Erlauben, Klicken Sie auf "Change Settings" - Taste. Sobald Sie geklickt haben, auf die Schaltfläche Einstellungen Ändern, die "anderes Programm Zulassen..." - Schaltfläche wird aktiviert.
Klicken Sie auf "anderes Programm Zulassen..." klicken , wird ein neues Dialogfenster wird geöffnet. Wählen Sie die Programme oder Anwendung, für die Sie immer die socket exception und klicken Sie auf "Hinzufügen" - button.
Klicken Sie auf OK, und starten Sie den Computer neu.
Versuchen, um Ihre Anwendung auszuführen (mit eine Ausnahme) mit administrativen rechten aus.
Ich hoffe, das hilft.
Frieden,
Sonnigen Makode
Bekam ich einen sehr ähnlichen Fehler bei meinem computer ein Update auf Windows 10-jähriges Jubiläum hinaus und effektiv blies alle meine Einstellungen. Es war wie das arbeiten mit einem neuen computer, Einstellung alles bis zum ersten mal benutzen... und dann bekam ich plötzlich diese Fehlermeldung, wenn mein code wurde versucht, einen web-service.
Aber der wahre Schuldige, und die Lösung in meinem Fall war, dass ich brauchte, um die option zu laufen in 64-bit. Diese Wahl verloren hatte, in meinem Fall.
Tools -> Optionen -> Projekte und Lösungen -> Web-Projekte -> "Verwenden Sie die 64-bit-version von IIS Express für Websites und Projekte".
Läuft
iisreset
in einem Befehlsfenster fixiert es für mich.Ich hatte den gleichen Fehler, die passiert, wenn ich hatte zwei verschiedene ASP.net Projekte, die in zwei verschiedenen Instanzen von Visual Studio.
Verschließen Sie das Problem beseitigt haben.