C#でIPマルチキャストアプリケーションを作成しました。それはうまくコンパイルされますが、実行時にこの行:
sock.SetSocketOption(SocketOptionLevel.IP,
SocketOptionName.AddMembership,
new MulticastOption(IPAddress.Parse("224.100.0.1")));
未処理のソケット例外をスローします。
システムに十分なバッファスペースがないか、キューがいっぱいであるため、ソケットの操作を実行できませんでした
Googleでエラーを検索したところ、有効になっている可能性のある3GBスイッチ(私のOSはWindows 7)を削除することを提案されました。私はそれをしましたが、それでも同じエラーを受け取ります。何が問題なのでしょうか?
これは、リソース(ソケット?)またはメモリが不足したときに発生するようです。コマンドプロンプトで実行:netstat -ab
ソケットの制限が何であるかはわからない。私は現在、このような問題に自分で取り組んでいます。
ソケット制限に関する注意: http://support.Microsoft.com/kb/196271
ポートが枯渇している可能性があります。アプリケーションが短い時間枠で発信接続を過剰に作成するか、発信接続を適切に破棄しない場合-ポートが不足します。
ここ はかなり長い説明へのリンクであり、問題を診断する方法です
リソースの制限を超えている場合、このエラーメッセージが表示されることがあります。 System.Net.Sockets.Socket
はIDisposable
を実装します。ソケットを使い終わったら、廃棄しますか?
ガベージコレクターのためにそれらを残しておくことは、リソースをリークする優れた方法です。
これと同じエラーが発生しますが、Windows 7でのみ発生します。Vistaで同じマルチキャストアプリを実行すると動作します。システム動作をポップアップしてアプリの動作をブロック解除しますが、実行されます。これはおそらくwin7で変更されたネットワーク許可の問題です。私はまだ解決策を探しています。他の誰かが見つけたら、投稿してください。
Windows Server 2008でも同じエラーが発生しました。私の場合、サーバーを再起動すると(2年間の稼働時間)問題が解決しました。
ローカルMySQLデータベースに接続しようとすると、同じ問題(エラー10055)が発生しました。オペレーティングシステムで許可される動的ポートの数を増やす必要があると思います。
私のために働いた解決策が言及されました here あなたはWindowsを使用しているので、それもあなたを助けるかもしれないと信じています。幸運を祈ります!
Windows Server 2012 R2 Datacenter x64でLoopiaというスウェーデンの外部電子メールプロバイダーに連絡すると、このエラーが発生しました。
サーバーはほぼ1年間再起動されませんでした。再起動後、すべてが機能しました。
システムに十分なバッファスペースがないか、キューがいっぱいであるため、ソケットの操作を実行できませんでした194.9.94.72:993
説明:現在のWeb要求の実行中に未処理の例外が発生しました。エラーの詳細およびコードのどこで発生したかについては、スタックトレースを確認してください。
例外の詳細:System.Net.Sockets.SocketException:システムに十分なバッファースペースがないか、キューがいっぱいであるため、ソケットに対する操作を実行できませんでした194.9.94.72:993
参照- http://support.Microsoft.com/kb/2553549 および https://support.Microsoft.com/en-us/kb/929851 (決定する必要な動的outboutポートの数)。この2番目の記事とともに、TcpTimedWaitDelayを30のdword 10進数値に設定します。したがって、ソケットがシステムに解放されると、クリアが速くなります。参照-technet.Microsoft.com/en-us/library/cc938217.aspx