.Net 1.1 TCP/IP wierdness fixed

| 3 Comments

"Additional information: An operation on a socket could not be performed because the system lacked sufficient buffer space or because a queue was full"

I've managed to get the .Net 1.1 TCP/IP issue that gives the above error mesage when trying to use sockets on .Net 1.1 fixed. Thanks to Alex Lowe for pointing me in the right direction and for the guys at MS support for allowing me to call them up and tell them I need to download the hotfix for KB 826757.

Interestingly...

If I now type the above error message into google I get a MS page that actually deals with the issue, though it helps to know what the issue is to realise that it deals with it... I don't think that page came up in my original search on 7th Jan (hmm, wouldn't it be nice to be able to do a google search as of a certain day, then I could go back and try that search again on Jan 7 and see if the page is there ;)). What would be good, Alex, if you're listening, is for all your KB article and bug report pages to have a 'date last updated' on them...

More interestingly the page that now comes top on the google search gives me a way to fix the problem without requiring the hotfix. You see, the problem that the hot fix fixes is the fact that in .Net 1.1 they appear to have added a limit to the number of network bindings that you're allowed to have. That limit is 50 and it wasn't there in .Net 1.0. I'm sure there's a good reason for it. The thing is, I don't have 50 network adapters. I have one and a 1394 Firewire adapter that's also considered to be a network adapter... When Alex directed me to the original KB article I used the information to search further and eventually ended up in the registry looking at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Linkage\Bind and other related networking keys. Sure enough the system thinks I have oodles of network adapters, most of them 1394 adapters... None of these extra adapters were displayed anywhere by control panel etc so I had no way to remove them using the usual tools. Given that it was 8 in the evening and MS support UK had shut up shop for the day and I couldn't call them to get the hotfix I considered, for a moment, editing these keys to remove the adapters that I didn't have, but thought better of it.

KB 815209 points to KB 241257 which tells you how to get device manager to display "ghosted" devices. With the help of that article I can actually see the dodgy 1394 adapters, all 70 of them! What's more now that I can see them I can uninstall them from within device manager and, I assume, that will remove them from the registry and mean that I now only have 2 adapters and thus dont need to apply the hotfix that I've just applied...

3 Comments

Thanks a lot for your detailed post on this Socket issue in .Net. While I wait for MS Support to send me the hotfix, your KB241257 link above helped me to get my code working.

i am having this same exact problem, but i only had 20 network adapters bound. i went ahead and removed any adapters/protocols i didn't need, but i still see the problem. what is odd is it is happening to me in my test application where i set up lots of ports. i have an app that creates many ports (thousands if you want). on 2 computers that are TOTALLY different, i get the exact same problem. after 163 ports (i think that's the #), it gives me this message on any new ports. the one box is a laptop and the other is a dual-processor desktop. totally different animals with the same problem. i didn't have this problem in v1.0 .net and i don't think i had it pre sp1 v1.1. any ideas?

Leave a comment