win2012r2终端和cifs对抗Alfresco服务器的虚拟电路

时间:2016-02-05 09:05:10

标签: alfresco windows-server-2012-r2

我们的一位客户运行>与Alfresco合作的Citrix农场的800名用户(目前Alfresco Community 4.2.d)。多年来(即使使用cifs),这种方法完美无缺,直到citrix服务器从Windows Server 2003升级到2012R2。在新的2012R2客户端会话中,CIFS会话冻结并且会话丢失,这导致整个终端会话的定期挂起。 到目前为止我们发现了什么:

  • 从WinServer 2003 MS开始使用Virtual Circuits 所有客户端终端会话只有一个共享tcp连接 在主机上运行。用户由VC编号属性
  • 标识
  • MS在其规范中声明VC = 0具有特殊功能:从该IP中删除所有会话
  • Alfresco实施了该规范,但Windows Server 2012启动了VC = 0的终端会话!如果连接到Alfresco的第一个用户(vc = 0)与Alfresco CIFS(MNT-12290 disconnectClientSessions assumptions don't work on Terminal Servers)进行交互,则会导致会话删除
  • 我们向后移植了由2实施的修补程序,并且还使用Alfresco 5.0.d进行了测试,但仍然看到了相同的问题:如果第一个用户使用CIFS进行通信,则会话会挂起。即使我们进行远程调试,我们也没有看到会话挂起时触及会话删除的更改代码。所以缺少一些东西。
  • 在较旧的Win Server版本中,曾经有注册表参数“MultipleUsersOnConnection”来控制VC行为并强制为每个客户端建立新连接,但2012R2不再提供此连接
  • 我们发现的唯一工作是通过设置像“alfresco_cifs”这样的通配符dns条目并使用唯一的服务器名称(例如“username%alfresco_cifs”)映射每个用户来强制执行不同的tcp连接并避免VC问题

有没有人更深入了解2012R2终端服务的VC处理以及为什么会话以VC = 0开始? 有没有人使用Windows Server 2012R2终端服务对任何版本的Alfresco使用CIFS进行工作配置,并且正在使用哪种技巧来运行它?

当然,一种策略是完全避免使用CIFS,但我们没有使用WebDAV或Share Point Protocoll作为挂载驱动器的良好经验。有许多conditioins可能会制止这种情况(使用名称,长路径中的特殊字符,......)

也许有人拥有其他可扩展且强大的解决方案,从终端会话连接到共享驱动器,以及使用CMIS,WebDAV,......等第三方解决方案。我们正在讨论开发一种新产品来使用REST映射驱动器,但又不想重新发明轮子......

期待任何见解/反馈!

0 个答案:

没有答案