WCF抛出套接字异常

时间:2016-02-29 14:15:27

标签: wcf c#-4.0 dependency-injection .net-4.0 socketexception

我正在使用带有NetTcp绑定的WCF和城堡windsor作为客户端的依赖注入。

我有时会在客户端收到Socket异常,而不是总是如此。试过不同的配置设置,但没有运气。异常发生是完全随机的。

几条错误消息:

  1. 远程主机强行关闭现有连接

  2. System.ServiceModel.CommunicationObjectFaultedException:通信对象System.ServiceModel.Security.SecuritySessionClientSettings`1 + ClientSecurityDuplexSessionChannel [System.ServiceModel.Channels.IDuplexSessionChannel]不能用于通信,因为它处于Faulted状态。

  3. 加载CubeDrillThroughAttributeSets缓存时出错:System.ServiceModel.ProtocolException:由于服务器启动的关闭,输出会话自动关闭,因此无法再使用此通道发送消息。通过将DispatchRuntime.AutomaticInputSessionShutdown设置为false来禁用自动关闭,或者考虑使用远程服务器修改关闭协议。

  4. 加载位置缓存时出错:System.ServiceModel.CommunicationObjectAbortedException:通信对象System.ServiceModel.Security.SecuritySessionClientSettings`1 + ClientSecurityDuplexSessionChannel [System.ServiceModel.Channels.IDuplexSessionChannel]不能用于通信,因为它已被中止。
  5. 使用PerCall实例模式配置WCF服务。

    在客户端,我使用依赖注入来注入WCF服务代理(代理是使用channel factory创建的)。

    我没有明确打开/关闭与WCF服务的连接并将其留给DI。

    已经尝试使用谷歌。我的问题是......

    1. 使用DI进行代理管理很好吗?
    2. 如何管理代理的生命周期。
    3. 当用户选择在UI应用程序中加载某些屏幕时,这些代理会在construtor中注入。如果用户只是打开一些屏幕而没有做任何事情,这些代理可以按照客户端app.config文件中的定义进行超时。如果是的话,那么没有超时的好方法是什么。
    4. 是使用WCF连接池功能的这些代理。
    5. 提前致谢。

0 个答案:

没有答案