способы установления связи между веб-сервером и Windows-приложением в .NET - PullRequest
3 голосов
/ 18 ноября 2011

Мне нужно найти наиболее эффективный способ связи с веб-сервером asp.net и приложением Windows C ++.Приложение Windows не имеет никаких прав доступа к базе данных веб-сервера asp.net.

Когда пользователь нажимает кнопку, это действие с некоторыми байтами должно быть получено приложением C ++.

В свою очередь, после обработки данных в приложении C ++ оно отправит результат обратно на веб-сервер.

В настоящий момент я могу думать только о следующем:

  • Веб-сервер asp.net будет иметь два метода веб-службы:

  • приложение C ++ будет вызывать эту веб-службу для метода для интервала.если есть изменение, то приложение C ++ будет обрабатывать.

  • после того, как приложение C ++ завершит свой процесс, оно вызовет метод этого веб-сервиса для информирования о результате.

Есть ли другие способы решить эту проблему?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 29 ноября 2011

Если приложение C ++ также работает в Windows, именованные каналы были бы хорошим решением. Их можно настроить так, чтобы они были долговечными, поэтому они могут ставить в очередь сообщения, если какая-либо из сторон не готова принять сообщение, и они довольно просты в использовании. По сути, они выглядят как файлы, которые вы можете читать или записывать, а данные появляются на другой стороне "канала".

Посмотрите документацию (C ++) здесь: http://msdn.microsoft.com/en-us/library/aa365781(v=VS.85).aspx

На стороне ASP.NET вы будете использовать .NET API. Вот хороший пример для начала работы: http://msdn.microsoft.com/en-us/library/bb546085.aspx (Этот пример включает в себя как клиентский, так и серверный код.)

Именованные каналы были бы отличным решением, если приложение C ++ находится на том же физическом сервере, что и приложение ASP.NET. В этом случае ОС будет просто перемещать память между процессами для вас, поэтому она может быть очень быстрой.

Кроме того, я бы настроил приложение C ++ как службу Windows, чтобы оно всегда было доступно и могло быть перезапущено при перезапуске сервера, на котором он запущен. Если поддерживать его в рабочем состоянии очень важно, вы можете интегрировать счетчики производительности, а затем ваша оперативная группа контролирует счетчики, чтобы убедиться, что он работает в ожидаемых пределах.

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

Вы можете использовать сетевые сокеты. Я давно с ними ничего не делал, поэтому не могу помочь. Исследуйте Winsock (он же Windows Sockets API).

Вы можете использовать службы WCF и подключаться к ним с помощью клиента C ++. Вам придется исследовать использование служб WCF из клиента C ++.

Как @parapura предложил вам использовать простые методы HTTPRequest get & post. Вы можете создать свой собственный обработчик http для этих запросов, чтобы настроить ответ.

Как вы и предлагали, вы можете использовать простые веб-сервисы.

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

Приложение C ++ может также сделать простой запрос GET или POST с достаточным количеством информации, которую веб-сервер может обработать в случае, если вы не хотите предоставлять веб-сервис.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...