Отправка данных из веб-приложения в консольное приложение C # - PullRequest
3 голосов
/ 07 февраля 2009

Мне нужно отправить данные из веб-приложения в консольное приложение. Текущий план требует, чтобы веб-приложение отправляло данные в базу данных, а консольное приложение опрашивало базу данных, а затем воздействовало на данные при их вставке. Следует ли изменить консольное приложение, добавив в него обработчик http, чтобы веб-приложение могло отправлять данные, чтобы ему не приходилось опрашивать базу данных? Есть ли лучший способ передачи данных между этими двумя приложениями? Консольное приложение никогда не должно отправлять данные в веб-приложение.

Обновление

Это консольное приложение .NET 2.0, поэтому WCF не выглядит приемлемым вариантом. Полезная нагрузка данных достаточно мала (несколько полей из 9 цифр, всего менее 150 байт) и будет отправляться со скоростью около 10 в минуту. Между этими двумя приложениями нет брандмауэра.

Ответы [ 3 ]

2 голосов
/ 07 февраля 2009

Я не уверен в ваших требованиях или настройке, но WCF может быть вариантом.

[править]
Чтобы расширить, вы можете разместить службу wcf в консольном приложении и сделать так, чтобы сайт asp.net вызывал ее. В этом отношении удаленное взаимодействие (или любая другая форма) также может работать. Таким образом, вам не потребуется пул базы данных консольного приложения, когда в этом нет необходимости.

0 голосов
/ 07 февраля 2009

Используя самые простые технологии, ваше консольное приложение может подключаться к базе данных в цикле, управляемом таймером или BackgroundWorker. Вам нужен способ узнать, какие записи являются новыми, а какие нет. Если вы можете удалить записи из этой таблицы при опросе, это означает, что каждый раз, когда вы делаете это, вы будете получать только новые записи. Если вы не можете удалить их, используйте поле TimeStamp в этой таблице, и при каждом опросе вы выбираете записи с этой отметкой времени, превышающей максимальную отметку времени предыдущего пакета. Если вам нужно пометить эти записи как обработанные, вы можете установить этот флаг и забыть о отметке времени.

0 голосов
/ 07 февраля 2009

Вы в основном хотите, чтобы приложение связывалось с приложением. Вариантов много, но они зависят от ваших требований (объем данных, объем, частота, задержка), среды (за брандмауэром, онлайн / офлайн, восстановление) и т. Д.

Использование базы данных является одним из решений. Но вы можете использовать и другие - например, веб-сервис (wcf), систему обмена сообщениями (msmq), удаленное взаимодействие .net даже.

...