Пример удаленного взаимодействия .Net не будет работать на моем компьютере при подключении к сети - PullRequest
0 голосов
/ 03 ноября 2011

Я пытаюсь понять .Net удаленное взаимодействие с событиями и обратными вызовами.Когда я читал учебники в Интернете, я обнаружил статью:

codeproject: .NET Remoting Events объяснены

, где этот механизм объясняется на примере.Я играл с проектом, который я скачал на той же самой веб-странице.

Единственное, что я изменил в коде, это «RemotingEvents.Client.Form1.serverURI», который я заново набрал на localhost («tcp: // localhost: 15000 / serverExample.Rem»).Я скомпилировал проект в Visual Studio 2010 под .Net 4.0 и протестировал скомпилированные сборки на 64-битном ПК с Win7, и тут я столкнулся с проблемой.

Я запустил сервер и запустил его.После этого я подключил один клиент к нему, все прошло нормально, потому что пока не было выполнено никакого обратного вызова.Проблема появилась, когда я пытался отправить сообщение с моего клиента на сервер.Сообщение прошло на сервер и появилось в текстовом поле, как и предполагалось.Сразу после этого сервер пытался отозвать подключенного клиента, но не смог дозвониться и выдал исключение, которое вернулось клиенту, который отправлял сообщение в первую очередь.

По истечении времени, потраченного на попытку запуска приложения, чтобы обратные вызовы проходили так, как они должны были, я обнаружил, что когда я отключаю свой ПК от общедоступной сети, в которой я нахожусь, сервер-клиентная связь работает отлично и без проблем (даже с большим количеством клиентов).

Кто-нибудь знает, в чем проблема, почему я не могу запустить эти приложения, правильно взаимодействующие с обратными вызовами, пока они подключены к моему компьютеру к указанной сети?Есть какой-то конфликт?

Спасибо!

----- РЕДАКТИРОВАТЬ (11/11/2011 17:15) -----

После первого ответа Криса Лайвли я былпосле установки брандмауэра, и я обнаружил, что даже после отключения брандмауэра проблема все еще остается.

1 Ответ

1 голос
/ 03 ноября 2011

Проблема связана с вашим брандмауэром.

Подключитесь к сети и измените настройки брандмауэра вашего ПК для этого типа сети, чтобы разрешить доступ к вашему ПК через соответствующий порт.

По сути, сервер пытается открыть порт на клиентском ПК.Клиентский ПК отказывает в этом из-за настроек брандмауэра по умолчанию.

Если вам нужна помощь в настройке брандмауэра, пожалуйста, оставьте следующий вопрос на http://serverfault.com

...