2009-06-03 6 views
2

WCF 서비스 호출을위한 래퍼를 만드는 가장 좋은 방법은 무엇입니까? 나는 같은 장소에서 모든 호출을 모니터하기 위해 이 필요하다고 생각한다. 나는 이런 종류의 코드를 사용하려고 생각하고 있는데,이 올바른 생각인가?WCF 서비스 호출 래퍼

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


엔터프라이즈 응용 프로그램에는 어떤 종류의 래퍼가 사용됩니까?
고마워요!

+2

대부분의 사람들은 래퍼를 전혀 사용하지 않는다고 생각합니다. 왜 사용하고 싶은지, 왜 모든 사람들이 사용하는지 생각해보십시오. –

+0

나는 모든 사람들이 그것들을 사용한다고 생각하지 않지만 모든 종류의 서비스 예외 처리와 서비스 호출 로깅이 필요하다고 생각한다. 예를 들어, 같은 장소에서 ... 그렇지 않습니까? –

+0

"필수"라면 프레임 워크에 있어야합니다. 프레임 워크에 있더라도 래퍼를 통해 수행되지 않을 수 있습니다. 진심으로, 다른 모든 사람들이 모든 것에 대한 래퍼 생성에 대해 이야기하는 것을 보았습니까? 그렇지 않다면, 너는 처음이야. 당신은 당신이 "필요한 것"을 처음으로 발견 할 가능성이 있다고 생각 했습니까? 3 년 후 WCF가 거기에 있었습니까? –

답변

6

WCF에는 서비스 호출 체인에 참여할 수있는 모델이 있습니다. 나는 당신이하려고하는 모든 것이 로깅 (설정 파일에서 진단을 켜면 ​​WCF가 이미 잘 수행하고있다)과 서비스 주위의 일반적인 것들이 있다면 모든 서비스 호출을 감싸려고하는 것보다는 그것을 사용할 것이다. 전화.

Here is a good MSDN article WCF 서비스에 대한 사용자 지정 동작을 만드는 방법에 대해 설명합니다.

+0

나는이 기사를 읽었지만, 처분에 예외를 던질 수있는 WCF 서비스의 문제에 대해서는 아무것도 보지 못했다. 나쁜 Dispose 구현을 처리하기위한 서비스 래퍼를 권할 것입니까? –

+0

우리는 단지 국제 대회를 사용합니다. 이는 잘 알려진 상황이며 디버깅하기가 쉽습니다. 래퍼는 옵션이지만 use 블록 대신 try catch 블록에서 Dispose를 호출하는 것과 마찬가지로 래퍼를 사용하는 것만 큼 많은 규칙이 있습니다. 그냥 내 .02 –

1

필요하면 직접 작성하십시오 Message Inspector.

WCF도 message logging 내장. 기본적으로 System.Diagnostics.XmlWriterTraceListener를 사용하여 파일에 쉽게 로깅 할 수 있지만 로그를 데이터베이스 (예 : 데이터베이스)에 작성해야하는 경우에는 trace listener을 직접 작성할 수 있습니다.

나는 메시지 검사관보다이 접근법을 권장합니다 ... 메시지 검사관은 당신이하고있는 일을 모른 채 잘못 기입하고 성능을 해치는 것은 너무 쉽습니다.