У нас есть старое устаревшее веб-приложение. Архитектура состоит из:DCOM singleton replacement
- (классический) ASP-страницы, обслуживающие браузеры клиента; VB, тысячи из них
- сервер DCOM без обработки, вызываемый ASP (IIS); MFC, singleton, exe
- база данных; один или несколько схем
- дополнительное приложение ASP.NET вызова сервера DCOM
роли сервера являются:
- для обработки входа пользователя, выход из системы и лицензирования
- хранить информацию сеанса пользователя
- для создания UI
- для обеспечения/авторизации действий пользователя
- для извлечения и хранения данных в базе данных
Поскольку многие роли сервера, вызывающий интерфейс между ASP (IIS) и сервером DCOM довольно широк и широко используется на многих страницах.
Основная проблема лежит в IIS, вызывающем DCOM-сервер и увеличиваясь с новыми серверами Windows. Начиная с Windows Server 2008 эта комбинация практически не поддерживается. С UAC на месте даже однопользовательский сервер DCOM без обработки не работает (разные процессы запускаются в разных контекстах безопасности).
Я хотел бы сохранить код MFC/C++ сервера и работать как одиночный (несмотря на все минусы). Эти страницы ASP являются самой динамичной и постоянно меняющейся частью приложения, и я бы хотел оставить их неизменными. Я могу пожертвовать дополнительным приложением ASP.NET.
Что было бы лучшей заменой одноточечного интерфейса DCOM на сервере? Я считаю, что производительность и будущее обслуживание наиболее важны.
(я могу видеть, идентичную .Net интерфейс в качестве замены COM, но моя главная задача была держать его один-процесс-одиночки в моих первых итераций.)
Невозможно ли обозначить правильную идентификацию для вашего сервера? С более новыми операционными системами это просто разные учетные записи безопасности, которые используются для запуска IIS - oncce mathcing IIS security для обеспечения безопасности компонента, он должен работать по-прежнему, нет? Я постараюсь ответить на ваш прямой вопрос в ответе ниже –
В Win2008 + он основан как на учетных записях безопасности, так и на уровне целостности. Вот почему иногда запускается второй процесс. Это зависит от того, считает ли «DCOM SCM существующим экземпляром сервера DCOM подходящим для конкретного клиента» или нет: [см. Эту дискуссию на форуме Microsoft] (http://social.msdn.microsoft.com/forums/en-US/windowscompatibility/нить/60c04b1d-eb28-485f-a9de-71e211a5097b /). И они препятствуют серверам DCOM с одним экземпляром, что подтверждает актуальность моего вопроса. –