У меня есть приложение, которое находится над несколькими отдельными приложениями, каждый из которых работает в своих доменах приложений. Возникла необходимость в двух разных приложениях, чтобы использовать порт 80 для обслуживания некоторого веб-трафика. Есть ли способ захватить сетевые запросы в родительском домене и управлять сетевым трафиком для передачи данных в каждый отдельный домен по мере необходимости? Является ли их альтернативной архитектурой, которую я должен рассматривать?Маршрутизация сетевых данных в доменах приложений
0
A
ответ
0
Вы можете захватить открытый запрос в родительском домене и обернуть его классом, который наследует MarshalByRefObject. Ссылка на такой класс может быть легко перенесена в другой AppDomain.
Обратите внимание, что вы должны обернуть ЛЮБОЙ класс, который передается между AppDomains (параметры метода, возвращенный результат, EventArgs и т. Д.).
Например:
class Connection : MarshalByRefObject
{
event ReceivedDataEventHandler ReceivedData;
void Send(byte[] b)
{
// ...
}
}
class ReceivedDataEventArgs : MarshalByRefObject
{
public string Data { get; }
}
delegate void ReceivedDataEventHandler(object sender, ReceivedDataEventArgs e);
Смежные вопросы
- 1. сетевых приложений javaSE
- 2. Ajax Post Form в разных доменах приложений
- 3. Запросы сетевых приложений Apple Watch
- 4. Маршрутизация приложений для Android
- 5. SSO в разных доменах
- 6. Как спроектировать AsyncTasks для сетевых приложений Android
- 7. Есть ли блок приложений для корпоративных приложений для сетевых служб
- 8. Проверки сетевых данных в андроиде
- 9. Хранилище данных сетевых сервисов
- 10. Отладка сетевых приложений и тестирование на синхронность?
- 11. Зависимости кэша сетевых приложений Java локально
- 12. Плагин IDE для разработки многопоточных сетевых приложений
- 13. Можем ли мы использовать статическое поле в доменах приложений?
- 14. SynchronizationContext.Current имеет значение null при запуске в разных доменах приложений
- 15. Возможно ли одновременное приложение, работающее в нескольких доменах приложений параллельно?
- 16. Удалите все ссылки на DLL во всех доменах приложений
- 17. Обработка сетевых сетевых образов
- 18. Служба в классе приложений, делающая сбои в работе сетевых сокетов
- 19. Процесс прекращения получения сетевых данных
- 20. с помощью Google Maps Маршрутизация приложений приложений сбрасывается
- 21. Аутентификация в разных доменах
- 22. Маршрутизация фляж и угловых веб-приложений
- 23. Маршрутизация приложений для полимеров, не собирающая переменные
- 24. Маршрутизация рельсов приложений на основе uri
- 25. Передача сетевых учетных данных в System.Net.NetworkCredential
- 26. Поддержка сетевых и сетевых гнезд
- 27. Сектор сетевых услуг
- 28. Построение VS2017. Сетевых приложений, которые нацелены на полную инфраструктуру .net.
- 29. .NET 2.0 или .NET 3.5 для сетевых приложений
- 30. Перенаправление сетевых приложений трафика на уровне Data Link
Жаль EventHandler мероприятия будут выполняться в дочернем домене, поэтому он будет передавать весь основной объект (который зарегистрировал событие) в дочернем домене. –
Вы правы, это был просто пример, поясняющий, что любой объект, который может быть перенесен между AppDomains, должен наследовать MarshalByRefObject. Это означает, что зарегистрированный класс должен также наследовать MarshalByRefObject или быть Serializable (для этой цели может использоваться только один вспомогательный класс). Другой альтернативой является регистрация с использованием статического делегата, если это позволяет дизайн приложения. – MaMazav