代码之家  ›  专栏  ›  技术社区  ›  mafu

WCF:如果建立了一个通道但没有调用任何方法,会发生什么?

  •  0
  • mafu  · 技术社区  · 14 年前

    在我的特定情况下:建立了一个WCF连接,但从未调用唯一具有“isitiating=true”(登录方法)的方法。发生什么事了?

    如果连接在一段时间后由于不活动而关闭:哪个设置配置此超时?客户端是否仍有保持连接活动的方法?

    这个问题的原因:我认为上述案件可能是一个安全漏洞。想象一下,许多客户机在没有登录的情况下连接到服务器,从而阻止其他客户机由于带宽问题、端口不足、处理能力不足或…

    我是在做梦,还是这真的是个问题?

    1 回复  |  直到 14 年前
        1
  •  3
  •   marc_s HarisH Sharma    14 年前

    WCF客户端代理在超出作用域时(例如,当它正在使用的方法终止时),将关闭连接(如果打开)。

    如果您正在使用会话(但只有当您确实建立了一个会话——调用了一个方法之后),才会有一个 inactivityTimeout 在会话中进行设置,在客户端和服务器端都是这样——可以说,较小的值“获胜”。

    如果您的服务器上的“ConcurrentSessions”设置非常低,这可能是一个问题-但同样,这只会在实际会话(例如至少调用了一个方法)到位时发生-在这种情况下,会话上的非活动超时将根据需要清除那些未使用的会话。