#c# #multithreading #entity-framework #wcf #azure
#c# #многопоточность #entity-framework #wcf #azure
Вопрос:
У меня есть приложение, существующее на веб-сайте, локальный клиент WPF и служба WCF для связи с клиентом. В настоящее время эти приложения устанавливаются один раз для каждого клиента. Я хотел бы перенести свой WCF-сервис в Azure и, следовательно, принимать вызовы от разных клиентов. Единственное, что действительно меняется, это строка подключения к БД.
Моя бизнес-логика основана на EF. EF всегда получает строку подключения из статического метода, который считывает ее из конфигурационного файла. (в настоящее время)
Итак, мой вопрос: где я могу сохранить строку db-connection для текущего вызывающего абонента? Я знаю, что есть OperationContext, но мне нужно что-то менее конкретное, чтобы библиотеку можно было использовать для всех типов приложений, которые у меня есть. Я подумал о сохранении вызывающего абонента в потоке.Принципал, но я не уверен, что это правильный подход.
Любые предложения приветствуются.
Комментарии:
1. вам нужна служба в облаке, предназначенная для некоторых локальных баз данных для каждого клиента?
2. Нет, извините за неточное объяснение. База данных, сервис и веб-сайт находятся в облаке, на клиенте находится WPF-приложение и копия базы данных, которая синхронизируется через службу WCF…
3. но почему вы должны менять соединение в зависимости от вызывающего абонента?
4. В настоящее время инфраструктура развернута для каждого клиента. Скажем, у нас есть 4 клиента, что означает 4 базы данных, 4 веб-сайта, 4 WCF-сервиса и, возможно, 8 клиентов WPF (по 2 на каждого клиента). Цель состоит в том, чтобы использовать только 1 службу WCF для всех 4 клиентов. Для этой службы мне нужно решить, какой клиент звонит, что означает, к какой базе данных обращаться.