У меня нет опыта удаленного взаимодействия. Я пытаюсь использовать его и продолжаю получать ошибку WinSock 10048 при открытии TcpChannel.
Я использую самый простой код из MSDN:
TcpChannel serverChannel = new TcpChannel(9090);
ChannelServices.RegisterChannel(serverChannel);
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemoteObject), "RemoteObject.rem",
WellKnownObjectMode.Singleton);
При первом запуске он работает и завершает работу правильно, но во второй и так далее я продолжаю получать ошибку 10048, например, сокет 9090 уже используется. Netstat -a вообще не показывает порт 9090, вроде он уже был закрыт.
Что я делаю неправильно?





Прежде чем спросить здесь, я потратил четыре дня, пытаясь решить эту проблему, и уже получил ответ: просто WinSock в Windows XP был поврежден.
Проблему решили две простые команды Windows:
netsh int ip сбросить resetlog.txt
сброс WinSock Netsh
Ошибка 10048 соответствует WSAEADDRINUSE, что означает, что адрес уже используется. Насколько я могу судить, это, скорее всего, будет означать, что порт 9090 уже занят другим приложением.
Да, конечно. Проблема заключалась в том, что не было приложений, использующих этот порт (по крайней мере, видимых netstat). Я пробовал много других портов, таких как 39000, 9095 и т. д., С точно такими же результатами.
Я подозреваю, что клиент брандмауэра ISA Server может иногда вызывать такое поведение.