Оболочка вызова службы WCF

Как лучше всего создать оболочку для вызова службы WCF? Я думаю, что необходимо отслеживать все звонки в одном месте, я думаю использовать такой код, это правильная идея?

RetType t = ServiceExecutionContext<IServiceChanel>.Execute(s=>s.GetServiceMethod());


Какую оболочку вы используете в своих корпоративных приложениях?
Большое спасибо!


person Arsen Mkrtchyan    schedule 03.06.2009    source источник
comment
Я думаю, что большинство людей вообще не используют обертки. Пожалуйста, уточните, почему вы хотите их использовать, и почему, по вашему мнению, их используют все.   -  person John Saunders    schedule 03.06.2009
comment
Я не думаю, что все их используют, но я думаю, что необходимо иметь все виды обработки исключений службы и регистрации вызовов службы, например, в одном и том же месте... не так ли?   -  person Arsen Mkrtchyan    schedule 03.06.2009
comment
Если бы это было необходимо, то было бы в рамках. Даже если бы это было во фреймворке, это не могло бы быть сделано через обертки. Серьезно, вы видели, чтобы кто-нибудь еще говорил о создании оберток для всего? Если нет, то ты первый. Вы думали, что вы, вероятно, будете первыми, кто найдет что-то нужное? После трех лет существования WCF?   -  person John Saunders    schedule 03.06.2009


Ответы (2)


WCF имеет модель, которая позволяет вам быть в цепочке вызовов службы. Я бы использовал это вместо того, чтобы пытаться обернуть каждый вызов службы, если все, что вы пытаетесь сделать, это некоторая регистрация (что WCF уже очень хорошо делает, если вы включаете диагностику в файле конфигурации) и общие вещи, подобные этому вокруг вашей службы звонки.

Вот хорошая статья MSDN о том, как создавать настраиваемые поведения для служб WCF. .

person Brian ONeil    schedule 03.06.2009
comment
Я читал статью, но ничего не увидел о проблеме службы WCF, которая могла бы генерировать исключение при удалении. Не могли бы вы порекомендовать сервисную оболочку для обработки этой плохой реализации Dispose? - person Pierre-Alain Vigeant; 21.02.2011
comment
Мы просто используем соглашение. Это хорошо известная ситуация, и ее довольно легко отладить. Оболочка является опцией, но использовать оболочку так же условно, как и вызывать Dispose в блоке try catch вместо блока using. только мой .02 - person Brian ONeil; 22.02.2011

При необходимости напишите собственный Инспектор сообщений.

WCF также имеет встроенную регистрацию сообщений. По умолчанию вы можете легко вести журнал в файл с помощью System.Diagnostics.XmlWriterTraceListener, однако, если вам нужно записать журнал в другом месте (например, в базе данных), вы можете написать свой собственный прослушиватель трассировки.

Я бы рекомендовал этот подход вместо инспектора сообщений... инспекторы сообщений слишком легко писать неправильно и снижать производительность, не зная, что вы делаете.

person Anderson Imes    schedule 03.06.2009