2011-02-03 52 views
0

我读过的单向操作不应该在合同sessionful如果使用SessionMode.PerSession实例使用,但它不是一个糟糕的设计使用单向操作与sessionful合同时SessionMode是无论是每个电话还是每个单身人士。是采用被认为是不好的设计sessionful合同单向操作?

为什么单向操作不应该与每个会话使用,而他们可以与每个呼叫和每单可用于任何想法?

谢谢

回答

1

如果你使用你不知道,如果它造成的服务异常单向操作。未处理的服务异常总是会使通道出现故障。如果InstanceContextMode设置为PerSession其故障会话通道和其配置的服务实例。由于单向性质客户端将不知道这件事,并从同一个客户端代理将异常结束(通道出现故障......)来服务一个电话。客户只能在代理上致电Abort,但他不会知道这一点。 IMO Single实例化具有会话启用的行为相当类似,只是它不会处置服务实例。

这不会与 PerCall实例发生,因为每个调用实例使用通道堆栈进行单个请求处理。 正如评论指出,将在PerCall发生实例化以及由于断陷会话通道的。

+1

“PerCall实例化时不会发生这种情况,因为每个调用实例都使用通道堆栈进行单个请求处理”我假设使用PerCall模式时,任何未处理的异常也会使一个sesionful通道出错?但由于同一个sesionful通道用于处理来自此的所有请求客户端,不会从同一个客户端接下来的呼叫也会结束一个异常(因为通道故障,因此不能再使用)?如果是这种情况,那么我认为使用PerCall而不是PerSesion有任何好处。在这两种情况下,客户端都不会知道发生异常,直到再次调用服务为止。 – user437291 2011-02-03 20:07:13

相关问题