прекращение пользовательских запросов к сервисам wcf - PullRequest
1 голос
/ 29 июня 2011

Я работаю над 3-х уровневым приложением, основанным на формах win, с WCF в качестве нашего уровня обслуживания.У нас есть около 8-10 сервисов WCF (размещенных в службе Windows) для разнообразных целей.У нас есть требование, при котором администратор должен иметь возможность блокировать пользователей от выполнения каких-либо операций, а затем должен иметь возможность снять блокировку.По сути, намерение состоит в том, чтобы выполнять любое обслуживание и обновления сервисов или БД.Одним из вариантов будет отключение услуг.Но у нас также есть сценарии, в которых службы не могут быть остановлены, но мы не можем допустить обработки каких-либо запросов.

Я хотел бы знать, что в WCF есть способ или API, где мы можем блокировать службы, чтобы принимать любыепросит, но все еще продолжает работать.

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

Спасибо, Мани

Ответы [ 2 ]

1 голос
/ 29 июня 2011

Вы можете сделать так, чтобы ваши службы предоставляли конечную точку администрирования, на которую вы можете отправлять сообщения «Приостановить / возобновить».

В качестве альтернативы вы можете настроить централизованную службу, скажем, AuthorizationService, и заставить ваши службы Windows вызывать AuthorizationService.для каждого звонка, чтобы убедиться, что это разрешено.Затем эта служба может принять решение на основе учетных данных пользователя, времени суток, настроения администратора или того, что оно хочет, разрешить или нет вызов.Я не уверен, что этот второй сценарий будет применим в вашем конкретном случае.

0 голосов
/ 29 июня 2011

Блокировка «любых запросов» не выполняется.Если вы имеете в виду какой-то режим только для чтения, когда ваше приложение обслуживает запросы, но не изменяет их, вам придется кодировать их самостоятельно.Вы могли бы быть в состоянии сделать что-то необычное с помощью расширения WCF, но я не уверен, что буду беспокоиться лично - я просто проверю "установлен ли флаг администратора" в начале всех "делать "методы.Или, возможно, все методы, если это ваше намерение.

Вы бы вернули известную ошибку / исключение, которое вызывающий может (или не может) обработать изящно.Если количество методов нетривиально, то обязательно - посмотрите на точки расширения WCF.Я думаю о «поведении при работе», хотя есть много точек расширения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...