2010-12-11 11 views
16

C#でIPマルチキャストアプリケーションを作成しました。"システムに十分なバッファスペースがないか、キューがいっぱいになったため、ソケットの操作を実行できませんでした。"

sock.SetSocketOption(SocketOptionLevel.IP, 
        SocketOptionName.AddMembership, 
        new MulticastOption(IPAddress.Parse("224.100.0.1"))); 

は、未処理のソケット例外がスローされます:それは、この行を罰金コンパイルするが、実行時に

キューがあったため、システムが十分なバッファスペースを欠いていたりするので、ソケット操作を実行できませんでした

完全

Googleでエラーが検索され、有効になっている可能性がある3GBスイッチ(私のOSはWindows 7)が削除される可能性があります。私はそれをしましたが、それでも同じエラーが発生します。何が問題なの?

答えて

6

これはリソース(ソケット?)またはメモリが不足している場合に発生します。 コマンドプロンプトで次のコマンドを実行します。 netstat -ab

ソケットの制限値はわかりません。私は現在、このような問題に自分自身で戦っています。ソケット制限に関する

注: http://support.microsoft.com/kb/196271

3

私はこれと同じエラーを持っていますが、唯一のWindows 7上の私はVista上で私の同じマルチキャストアプリケーションを実行する場合、それは動作します。それは、アプリケーションからの動作のブロックを解除するシステムダイアログをポップアップされますが、それは実行されます。これはおそらく、win7のネットワーキングパーミッションの変更です。私はまだ解決策を探しています。他の人が見つけたら、投稿してください。

4

リソース制限を超えている場合、このエラーメッセージが表示されることがあります。 System.Net.Sockets.SocketIDisposableを実装しています。あなたがそれらを終了したらあなたのソケットを処分していますか?

リソースをガベージコレクタに残しておくと、リソースをリークするのに最適です。

+0

私はHTTPの投稿と同じ問題があります。すぐに大量に実行すると、IISを「使用する」ように適切に処分しても、IISが過負荷になるようです。アイデア? – jocull

+0

@jocullあなたのアプリケーションはどこですか? IISと通信している、またはIISによってホストされているクライアントマシンでは? –

+2

http://smallvoid.com/article/winnt-tcpip-max-limit.htmlは、オペレーティングシステムによって課される制限についても説明します。 –

7

ポート枯渇の可能性があります。 アプリケーションが短時間で多すぎる発信接続を行ったり、発信接続を適切に処理しなかったりすると、ポートが足りなくなります。

Hereはかなり長い説明と、私は私の場合のWindows Server 2008上で同じエラーを持っていた問題

1

を診断するための方法へのリンクである、後(2年のアップタイムで)サーバーを再起動して問題が解決しました。

0

ローカルのMySQLデータベースに接続しようとすると、同じ問題(a.k.aエラー10055)が発生しました。私はあなたがオペレーティングシステムが許す動的ポートの数を増やす必要があると信じています。

私のために働いた解決策は言及されましたhere 私はあなたがWindowsを使用しているので、それがあなたを助けるかもしれないと信じています。 運が良かった!

関連する問題