Как создать приложение-получатель в .NET, которое будет принимать сообщения или запросы со страницы ASP.NET? - PullRequest
0 голосов
/ 03 ноября 2010

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

Что я хочу сделать, это создать приложение Windows (или своего рода сервер), которое будет прослушивать запросы от ASP.NETприложение.Приложение Windows будет установлено и будет прослушивать сообщения из приложения ASP.NET, а затем выполнять некоторую обработку.Процесс выглядит следующим образом:

Пользователь загружает настольное приложение и регистрирует свой IP-адрес на моем веб-сайте.После загрузки приложения для настольного компьютера приложение ASP.NET может отправлять запросы этому конкретному клиенту для настольного компьютера для дальнейшей обработки.Я думаю, что дальнейшая обработка не зависит от разрешения в этом случае, поэтому я пропустил детали того, что будет сделано.Но если вы считаете это важным, пожалуйста, дайте мне знать, и я также добавлю эти детали.

Я рассмотрел создание TCP-сервера, который будет прослушивать запросы.Поскольку пользователь уже зарегистрировал свой IP-адрес на моем веб-сайте, мой веб-сайт назначает ему уникальный идентификатор и сохраняет этот идентификатор вместе с IP-адресом в базе данных.Теперь сайт ASP.NET может отправлять запросы этому настольному приложению.

Я рассмотрел создание TCP-сервера для этой цели.Во время исследования я также натолкнулся на PNRP, и это похоже на то, что я пытаюсь сделать.

Можете ли вы, ребята, порекомендовать несколько решений или где я должен искать этот сценарий?Должен ли я создать простой TCPLISTENER или может быть с подходом PNRP?Или что-то еще?

Основное требование - чтобы веб-приложение могло взаимодействовать с настольным приложением.Веб-приложение будет обслуживать множество пользователей, и у каждого пользователя будет установлено настольное приложение.Какой пользователь, для какого вопроса клиента настольного компьютера будет отвечать веб-приложением, которое будет поддерживать базу данных уникальных идентификаторов пользователей и их соответствующих IP-адресов.

Заранее благодарим за помощь.

Ответы [ 2 ]

0 голосов
/ 03 ноября 2010

Вы можете использовать .NET Remoting или веб-сервис в настольном приложении.Используйте WCF или WSE для последнего.Вы можете использовать COM для добавления правил Windows Firwall.

0 голосов
/ 03 ноября 2010

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

Как только вы разобрались с этой частью, я использовал в вашей ситуации .NET Remoting. В то время, когда WCF не выходил, а когда это происходило, он был инвалидом для моих нужд. TCP IP-сокеты были слишком сырыми (мне пришлось написать слишком много кода), и поэтому Remoting идеально решила мою проблему (полная строка кода для установки соединения, и с этого момента все происходило автоматически).

РЕДАКТИРОВАТЬ: Я использую отличную стороннюю библиотеку, которая делает Remoting еще более гибкой (настолько гибкой, что я все еще жду, пока WCF догонит набор функций, так что я перестану использовать Remoting, и мне не повезло еще!). Проверьте http://www.genuinechannels.com/, чтобы увидеть все функции, которые они имеют. Это включает в себя звонки с сервера на клиента, и это звучит так же, как то, что вам нужно сделать. Проверьте это.

...