Помогите пожалуйста... несколько дней бьюсь над проблемой. Есть компонент COM+ на .NET. При этом хочется использовать Pooling, но в случае включения пулинга, SecurityCallContext становится недоступен. Каким образом мне получить идентификатор или UPN или вообще хоть что-нибудь что позволит мне идентифицировать Caller-а из тела метода COM+ компонента?
Здравствуйте, Syffest, Вы писали:
S>Помогите пожалуйста... несколько дней бьюсь над проблемой. Есть компонент COM+ на .NET. При этом хочется использовать Pooling, но в случае включения пулинга, SecurityCallContext становится недоступен. Каким образом мне получить идентификатор или UPN или вообще хоть что-нибудь что позволит мне идентифицировать Caller-а из тела метода COM+ компонента?
Вопрос в том а действитель ли тебе нужен Pooling и COM+, опиши для чего ты их используешь
Здравствуйте, Tom, Вы писали:
Tom>Вопрос в том а действитель ли тебе нужен Pooling и COM+, опиши для чего ты их используешь
COM+ нужен и это необсуждаемо. Можно много говорить о том как круто WebServices или ремоутинг, или придумать ещё с десяток вариантов организации сервера приложений. Но в моём случае религиозные войны не проходят. COM+ и отступать некуда, за нами Москва. Pooling хотелось бы использовать для тех компонентов которые обрабатывают множество несложных кратковременных запросов от большого числа пользователей. Так как одновременных пользователей в районе 20 тысяч, то думаю что затраты на создание объектов в данном случае излишни, тем более модель в данном случае стэйтлесс. В одной из задач нужно на сервере приложений идентифицировать пользователя вызвавшего метод. Прокидывать его в параметре как-то некрасиво. Вот и задался вопросом, а вообще это возможно или нет?
Здравствуйте, Syffest, Вы писали:
S>Помогите пожалуйста... несколько дней бьюсь над проблемой. Есть компонент COM+ на .NET. При этом хочется использовать Pooling, но в случае включения пулинга, SecurityCallContext становится недоступен. Каким образом мне получить идентификатор или UPN или вообще хоть что-нибудь что позволит мне идентифицировать Caller-а из тела метода COM+ компонента?
Незнаю что у тебя становиться недоступным но у меня всё работает. Код правда на плюсах, но разницы ессно никакой не должно быть:
Вообще по поводу пулинга — он предназначен для обьектов которые ДОЛГО создаются, ты пойми затраты на обслуживание пула могут быть на порядок больше чем на простое создание обьекта... По этому и спрашивал нужен ли тебе пулинг действительно. Сделай тест...
Здравствуйте, Tom, Вы писали:
Tom>Работает как с пулингом так и без него.
Tom>Вообще по поводу пулинга — он предназначен для обьектов которые ДОЛГО создаются, ты пойми затраты на обслуживание пула могут быть на порядок больше чем на простое создание обьекта... По этому и спрашивал нужен ли тебе пулинг действительно. Сделай тест...
Я и не был уверен что он мне нужен будет. Просто эксперементировал в плане возможностей и того как мне реализовать получение вызывающего пользователя. Но в .Net если я включаю Pooling объектов то обращение к SecurityCallContext возвращает, что контекст недоступен, что меня очень удивило. Т.е. если я буду получать пользователя из контекста, то мне нужно будет заведомо отказаться от пулинга даже если он понадобится. Вот с этим и хотелось бы разобраться.
Здравствуйте, Syffest, Вы писали:
S>Здравствуйте, Tom, Вы писали:
Tom>>Работает как с пулингом так и без него.
Tom>>Вообще по поводу пулинга — он предназначен для обьектов которые ДОЛГО создаются, ты пойми затраты на обслуживание пула могут быть на порядок больше чем на простое создание обьекта... По этому и спрашивал нужен ли тебе пулинг действительно. Сделай тест...
S>Я и не был уверен что он мне нужен будет. Просто эксперементировал в плане возможностей и того как мне реализовать получение вызывающего пользователя. Но в .Net если я включаю Pooling объектов то обращение к SecurityCallContext возвращает, что контекст недоступен, что меня очень удивило. Т.е. если я буду получать пользователя из контекста, то мне нужно будет заведомо отказаться от пулинга даже если он понадобится. Вот с этим и хотелось бы разобраться.
Незнаю, что значит "Но в .Net если я включаю Pooling объектов" пулинг включается в настройках COM+ обьекта
Здравствуйте, Tom, Вы писали:
Tom>Незнаю, что значит "Но в .Net если я включаю Pooling объектов" пулинг включается в настройках COM+ обьекта
Tom>ПС: Tom> У меня w2003 .NET 1.1
Ну да, неправильно сказал. Конечно в настройках COM+.
У меня 2003 .NET 2.0. При включенном пулинге объектов(не приложений, а именно объектов, в COM+ 1.5 ещё и пул приложений есть) при обращении к SecurityCallContext получаю ошибку что контекст недоступен. Странно что у тебя это не повторяется.
S>Ну да, неправильно сказал. Конечно в настройках COM+. S>У меня 2003 .NET 2.0. При включенном пулинге объектов(не приложений, а именно объектов, в COM+ 1.5 ещё и пул приложений есть) при обращении к SecurityCallContext получаю ошибку что контекст недоступен. Странно что у тебя это не повторяется.