실행중인 서비스의 모든 끝점에 메시지 관리자를 자동으로 추가하기 위해 사용하려는 사용자 지정 ServiceHost를 만들었습니다. 나는 IDispatchMessageInspector 및 IClientMessageInspector를 구현하고 모든 엔드 포인트에 추가하도록되어 다음과 같은 코드를 발견하셨습니까 MessageInspector을 만들었습니다런타임에 WCF 메시지 검사기 추가
foreach (ChannelDispatcher channel in this.ChannelDispatchers) {
foreach (EndpointDispatcher endpoint in channel.Endpoints) {
endpoint.DispatchRuntime.MessageInspectors.Add(new MyMessageInspector());
}
}
내가으로 실행하는 문제는 ServiceHost를 열 때까지 ChannelDispatchers 모음이 비어 있다는 것입니다 이것은 생성자에서이 코드를 실행할 수 없음을 의미합니다. 나는 오픈 이벤트에 대한 이벤트 처리기를 만들어 거기 대신에 그 코드를 사용하지만 그때 엔드 포인트를 추가하려고 다음과 같은 오류가 발생합니다 :
This value cannot be changed after a ServiceHost has been opened
나는 캐치의 어떤 종류에 걸려 있어요 보인다 22, WCF 내에서 가능한 기능을 찾고 있습니까?
감사, 서비스 엔드 포인트에 메시지 관리자를 추가하려면