【发布时间】:2012-08-11 01:47:27
【问题描述】:
我正在学习 WCF,并尝试从书中学到的不同示例。
我有一个简单的服务设置如下:
[ServiceContract]
interface MyService
{
[OperationContract(IsOneWay = true)]
void Throws();
}
我的客户端代码正在使用 ChannelFactory 类来创建代理:
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;
当这个方法被调用时,它会抛出一个未处理的异常(不是从 FaultException 派生的),并且使用相同代理的后续调用会抛出一个异常并且通道会出现故障。
问题是我在代理通道的 Faulted 事件中注册,但我没有收到任何通知,仅在尝试访问代理时。 p>
我的问题是——客户端如何保护自己免受故障代理的影响?代理不应该通知客户端它不可用,而不是让客户端尝试使用它吗?
【问题讨论】:
标签: c# .net wcf proxy wcf-client