Связь между приложениями ASP.NET на одной машине - PullRequest
2 голосов
/ 16 февраля 2010

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

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

Есть ли способ, которым одно приложение asp.net может легко связаться с другим в том же окне, чтобы очистить элемент из кэша?

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

Я действительно хочу создать способ взаимодействия приложений в слабосвязанной форме - я посмотрел на шину nservice, но зависимость от MSMQ меня отпугнула - у моего клиента был плохой опыт работы с MSMQ и он не хочет поддерживать приложение это требует.

Предложения? Michael

Ответы [ 5 ]

3 голосов
/ 16 февраля 2010

Общая база данных, вероятно, причинит вам наименьшую боль.

Редактировать

Примечание. ASP.NET позволяет выполнять триггеры «очистки кэша» при изменениях SQL-сервера. Должен быть быстрый поиск в кэше примеров на MSDN, чтобы найти несколько примеров. Таким образом, когда пользовательская информация, хранящаяся в кеше, изменяется в БД, локальная копия кеша очищается и перезагружается из БД.

3 голосов
/ 16 февраля 2010

Я согласен с Хоганом. Лучше всего использовать общую базу данных. Я хочу добавить к этому, что при использовании SQL Server вы можете использовать Зависимость кэша SQL . Этот механизм SQL Server позволяет уведомлениям приложений таким образом, что использованные кэши могут быть отменены непосредственно после внесения изменений в данные.

1 голос
/ 18 февраля 2010

Для .net доступны коммерческие распределенные кэши, отличные от Microsoft Velocity - NCache, Coherence и т. Д.

0 голосов
/ 16 февраля 2010

Как насчет Скорость ? Это распределенный кеш, который работает как между серверами, так и между приложениями. Он имеет управление PowerShell и всевозможную документацию, чтобы вы могли работать быстрее и быть более удобными в долгосрочной перспективе.

0 голосов
/ 16 февраля 2010

А как насчет COM / DCOM, используя пространство имен System.Runtime.Remoting

...