Lync 2010合同卡集成到LOB应用程序中

时间:2015-03-30 08:37:41

标签: javascript c# html internet-explorer lync

我正在尝试使用如here所述的ActiveX控件将Lync 2010联系人卡集成到业务线(LOB)应用程序中,但我似乎在10台测试PC之间出现了不一致的行为。

我有10台测试机器中的7台在悬停员工ID时成功显示完整的Lync联系卡,如:

This

然而,其他3台PC只显示部分接触卡(方框中的圆点,没有存在指示)。在扩展部分卡时,我得到以下内容,看起来好像Lync无法在7台PC中的3台上正确解析用户。

this

代码在.net浏览器控件中运行(因此仅针对IE),我已将其抽象为以下测试代码,该代码在Internet Explorer独立运行中成功复制了该问题 - 希望将浏览器控制权移出等式。

我已经尝试过的事情:

  • 确保lync正在运行,我获得部分卡的事实似乎意味着ActiveX控件正在PC上检测Lyncs的存在。

  • 使用IE调试状态检查,'if(Lync.nameCtl.PresenceEnabled)'始终返回true(仅当Lync未运行时才会出现错误)。

  • 根据thisthis

  • 清除了Lync解析程序缓存并提取了一个新的通讯录
  • 确定问题不是用户特定的,而是PC特定的,例如用户可以登录到另一台PC并且功能正常,同样另一个用户可以登录到不工作的电脑而且他们也没有工作。因此,问题似乎与漫游配置文件等无关。

  • 如果其中一台不能正常工作的PC恢复了新的企业形象。

  • Lync Server,Lync服务器位于群集中,但在检查系统托盘中的Lync配置信息时,正在运行的PC正在连接到与非某些PC相同的终端服务器。

  • 经过检查的软件版本 - 所有PC似乎都具有相同的软件版本:

带有SP1的Windows 7企业版(所有PC之间存在轻微的修补差异,但看起来没有相关的KB。在工作的PC和那些我无法理解的PC之间也没有模式。)

Internet Explorer版本9.0.8112.16421是的,我知道,但这是我正在使用的:-)

Lync 2010版本:4.0.7577.4356

代码(在地方匿名)

<html>
	<head>
        <meta http-equiv="X-UA-Compatible" content="IE=EDGE"/>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    </head>
		
	<body>
			  <div id="822">822</div>
			  <div id="624">624</div>
			  <div id="620">620</div>
			  <div id="23A">23A</div>
			  <div id="B47">B47</div>
			  <div id="084">084</div>

			  <script>
				 $(document).ready(function () {

					$("div").on({
						mouseenter: function () {
							
								Lync.showOOUI(this.id, event) 
							
						}, mouseleave: function () {
							
								Lync.hideOOUI()
							
						}
					});
				});
				
				
						var Lync = {

							sipUri: "",
							// Load up the NAME.dll functionality

							nameCtl: new ActiveXObject('Name.NameCtrl.1'),
							// Watch status changes
							onStatusChange: function (name, status, id) {
								
							},
							// Shows the Lync widget UI
							showOOUI: function (id, event) {
								
									Lync.sipUri = id + "@MyDomain.com";
									// Only show Lync presence if enabled
									if (Lync.nameCtl.PresenceEnabled) {
										Lync.nameCtl.OnStatusChange = Lync.onStatusChange;
										Lync.nameCtl.GetStatus(Lync.sipUri, "0");
										Lync.nameCtl.ShowOOUI(Lync.sipUri, 0, event.clientX, event.clientY);
									}
								
							},
							// Hides the Lync widget UI
							hideOOUI: function () {
								Lync.nameCtl.HideOOUI();
							},
							// Opens the full Lync widget menu
							openInfoPane: function () {
								Lync.nameCtl.DoAccelerator();
							}
						};
			
			  </script>
		</body>
</html>

0 个答案:

没有答案