저는 WCF를 배우며 책에서 배운 것과 다른 예를 시도하고 있습니다. 이 방법은 처리되지 않은 예외가 발생 호출 될 때WCF 프록시는 사용시에만 오류가 발생합니다.
var baseTcpAddress = new Uri("net.tcp://localhost/hello");
var tcpBinding = new NetTcpBinding();
// Create client channel.
ChannelFactory<ITestService> factory = new ChannelFactory<ITestService>(tcpBinding, new EndpointAddress(baseTcpAddress));
var channel = factory.CreateChannel();
var commObject = channel as ICommunicationObject;
commObject.Faulted += commObject_Faulted;
commObject.Closed += commObject_Closed;
:
이[ServiceContract]
interface MyService
{
[OperationContract(IsOneWay = true)]
void Throws();
}
내 클라이언트 코드가 프록시를 생성하기 위해 ChannelFactory에 클래스를 사용하고 다음과 같이
나는 간단한 서비스 설정을 가지고 (FaultException에서 파생되지 않음) 동일한 프록시를 사용하는 후속 호출에서 예외가 발생하고 채널에 오류가 발생합니다.문제는 내가 프록시 채널의 폴트 이벤트에 등록하고,하지만 난 어떤 통지를받지 오전, 만 프록시 액세스를 시도.
제 질문은 - 클라이언트가 어떻게 장애 프록시에서 자신을 보호 할 수 있습니까? 프록시가 클라이언트에게 시도하고 사용하는 대신 사용할 수 없다고 클라이언트에게 알리지 않아야합니까?
클라이언트 + 이벤트 후킹 설정 방법에 대한 내 질문이 업데이트되었습니다. 나는 또한 프록시의 상태를 쿼리 해봤는데, 항상 Opened를 리턴했다. –
좋아요. ServiceHost.Faulted에 가입을 시도 했습니까? 또한, 단방향으로 시도 했습니까? – Vitaliy
예, 아무것도 없습니다. –