这段时间正在做一个项目,服务端采用的是Lync Server 2013,所以必须在环境中部署Office Web Apps。遇到了一些Office Web Apps的一些问题,说起来非常的有意思,因为之前在做OWA部署这一块完全没有发现存在这样的问题,所以在排查这个问题的时候花了非常多的时间,最后才确定是这样的问题。环境是这样,一台Lync Server 2013标准版前端服务器,在此服务器上面Hyper-V跑了一台OWA服务器;还有一台DC服务器,在Hyper-V上面跑了一台Lync Server 2013边缘服务器。 每台服务器至少有两张网卡,一张连物理局域网,一张用来做内网。
其中DC、标准版FE、边缘都是通过一根专线连接到外部网络,在这根的防火墙上发布了5061、444、442到边缘、443到标准FE。OWA是通过另一根专线连接到外部网络,在这根线的防火墙上发布了443到OWA。
OWA的证书用的是边缘的,带有私钥,并且在SAN里面也包含了OWA的FQDN和DNS名称。此问题同时出现在内部环境和外部环境。在进行PPT共享时提示服务器连接问题,一些演示功能不可用。如下图:
解决Lync Server 2013无法共享演示PPT_Office Web apps
我的PPT是可以正常上传,然后显示加载中的,在加载片刻后会出现由于服务器连接问题,一些演示功能不可用。然后在服务器上取消关联OWA,重建OWA,重新关联,可以看到在发布拓扑后,服务器有id 41034的日志记录:
Web 会议服务器已成功发现 Office Web Apps 服务器(WAC),PowerPoint 内容已禁用
解决Lync Server 2013无法共享演示PPT_PowerPoint_02
41032的日志内容是:
Web 会议服务器 Office Web Apps 服务器(WAC)发现已成功
Office Web Apps 服务器内部演示者页面: https://owa.domain.cn/m/Presenter.aspx?a=0&e=true&
Office Web Apps 服务器内部与会者页面: https://owa.domain.cn/m/ParticipantFrame.aspx?a=0&e=true&
Office Web Apps 服务器外部演示者页面: https://office.domain.cn/m/Presenter.aspx?a=0&e=true&
Office Web Apps 服务器外部与会者页面: https://office.domain.cn/m/ParticipantFrame.aspx?a=0&e=true&
这里的四个地址非常有意思,打开均提示应用程序错误。跟后面在IIS中打开是一样的,直接显示应用程序错误。
然后我用日志分析工具,分析了客户的连接,得出以下的结果:
- <reportError  xmlns="http://schemas.microsoft.com/2006/09/sip/error-reporting">
    -  <error  toUri="sip:xuy@domain.cn;gruu;opaque=app:conf:focus:id:CW55GGN9"
                    callId="48c14d1520d94da2a90df1b1f86ee898"
                    fromTag="4f8ca09520"
                    toTag="7D760080"
                    requestType=""
                    contentType=""
                    responseCode="0">
           <diagHeader>54024;reason="A viewing URL navigation was attempted.";ClientType=Lync;Build=15.0.4420.1017;ContentMCU="sip:xuy@domain.cn;gruu;opaque=app:conf:data-conf:id:CW55GGN9";ConferenceUri="sip:xuy@domain.cn;gruu;opaque=app:conf:focus:id:CW55GGN9";LocalFqdn="REIN-PC";Url="https://office.domain.cn/hosting/discovery
这里我们直接打开官方指南中提示的“https://<office web apps fqdn>/hosting/discover”会发现是正常的,会正常的显示XML内容。由于我没有截图,用一下之前的图片。
解决Lync Server 2013无法共享演示PPT_Lync Server 2013_03
除了上面的错误外,还有这个错误:
<reportError xmlns="http://schemas.microsoft.com/2006/09/sip/error-reporting">
- <error toUri="sip:xuy@domain.cn;gruu;opaque=app:conf:focus:id:8JVC3K0R"
callId="a8a72df13d9a473884edb254627efce6"
fromTag="5f2de243dc"
toTag="6C3D0080"
requestType=""
contentType=""
responseCode="0">
<diagHeader>54018;reason="The navigation to the WAC URL failed.";ClientType=Lync;Build=15.0.4420.1017;ContentMCU="sip:xuy@domain.cn;gruu;opaque=app:conf:data-conf:id:8JVC3K0R";ConferenceUri="sip:xuy@domain.cn;gruu;opaque=app:conf:focus:id:8JVC3K0R";LocalFqdn="REIN-PC";Url="https://office.domain.cn/m/Presenter.aspx?a=0&e=true&WopiSrc=https%3A%2F%2Flync01.domain.cn%2FDataCollabWeb%2Fwopi%2Ffiles%2F1-1-25CEB2B&access_token=AAMFEK8DTuvzp61SmKQqomYLMjMGEN6qWlh_TnVdityizWOhTGWBEK8DTuvzp61SmKQqomYLMjOCAo6AgyBbqMuQE5I1UYrT30DtIKul9Kb1ErcGFcjZvlrAWMXQcoYIqzuh2XWizwgIDURhdGFDb2xsYWJXZWI&<fs=FULLSCREEN&><rec=RECORDING&><thm=THEME_ID&><ui=UI_LLCC&><rs=DC_LLCC&>";ErrorCode="0x800C0005"</diagHeader>
<progressReports>
我们尝试打开其中的URL地址,如下:
到此我们可以发现所有的问题都直指OWA服务器,因为Lync那边我们是不需要做任何特殊配置的,只需要简单的做定义和绑定。如果还是不能确定问题,那我们直接在IIS中打开m虚拟应用,如果看到的是以下错误,那么就可以确定是这个问题了。
解决Lync Server 2013无法共享演示PPT_Lync Server 2013_04
这里的证书错误是可以忽略的,但内容的错误是绝对不能忽略。
解决Lync Server 2013无法共享演示PPT_Office Web apps_05
做过网站的朋友都知道这里显示的这个错误根本没有办法继续做分析,因为根本就没有提供什么有价值的错误信息。但即便如此,我们可以确定一点,这并不是一个情况,换言之,我们的OWA服务器确实有问题,无论是什么问题。而我们的服务器是刚刚配置好的,按理说不该出现这种问题。
其实到这里我已经没有办法继续分析下去,因为我不会做网站,也不懂.NET,但是非常巧的是我自己建立的环境恰好也是Lync Server 2013,并且夜有OWA服务器,是没有问题。到此我决定做一个对比,很遗憾的是发现IIS也好,还是Lync也好,所有的配置几乎是一模一样的,到这里似乎这个问题非常的微妙,因为两个一模一样的环境,一个没有问题,一个有问题,这肯定是不科学的,肯定有一些差异。
最终发现我的环境有一个很大的差异,虽然也是用的Windows Server 2012搭建,但是我的全部都是基于模板建立的差异磁盘虚拟机。而我在做模板的时候百分百会做一个操作,那就是加上.NET Framework,为了肯定我的想法,我看了我的环境,的确如此,我在Server 2012中安装了.NET Framework 3.0和2.0。在发现这些差异后,我很快的否定,因为TechNet官网明确表示OWA服务器不需要.NET 3.0和2.0,只需要Server 2012的4.5即可。
解决Lync Server 2013无法共享演示PPT_Office Web apps_06
但很明显,如果因为官方文档就去或者不去做测试,那就太没有自己的主见了。所以我决定在有问题的OWA服务器上安装.NET 3.0和2.0。结果可想而知,OWA服务器的确需要.NET 3.0和2.0,而这在官方文档中是没有列出的,由于我不做开发,我不知道为什么会出现这种差异,但似乎不是我的环境有问题,而是确实没有.NET 3.0和2.0就没办法把我的PowerPoint 演示出来。在了解到解决方法后,我们会进行功能添加,但发现直接添加是有问题的,我们需要做一个Sources的指定,很简单。我们在虚拟机或物理机上插入Server 2012安装光盘,然后我们进行添加功能。
解决Lync Server 2013无法共享演示PPT_PowerPoint_07
在选择功能之后,在安装界面我们不忙点安装,单击左下角的“指定备用源路径”。
解决Lync Server 2013无法共享演示PPT_PowerPoint_08
我们在这里选择指定备用源,并指定X:\Sources\sxs\。其中X是光盘盘符或镜像挂载的盘符。
解决Lync Server 2013无法共享演示PPT_Lync Server 2013_09
单击确定,然后安装.NET 3.0和2.0吧,安装完成可以重启一下OWA服务器。在完成之后可能我们的Lync还是没办法共享PPT,我们这时需要在Lync拓扑中解除前端和OWA的关联,然后再将OWA删除,发布拓扑。完成之后稍待片刻,再次编辑拓扑,添加OWA服务器并关联前端,完成后发布拓扑。完成后我们立刻观察事件日志,如果出现事件ID 41032就OK了。
解决Lync Server 2013无法共享演示PPT_PowerPoint_10
如果仍然有问题,那就重启Lync前端服务器吧,有的时候仅仅是修改拓扑是没办法解决问题的,并且Stop-CsWindowsServices和Start-CsWindowsSerivces也是没有办法解决问题的,最根本的方法还是重启Lync前端服务器。
解决Lync Server 2013无法共享演示PPT_Office Web apps_11
希望今天的文章能够帮助大家解决相同的问题,在这篇文章里我较为详细的说了下排错过程而并非直接给大家答案,这是因为这种错误可能太多,不可能每个错误都知道解决方法,所以我希望分享在排错过程中的思路和方法。
我没有在Server 2008 R2中测试此问题是否重现,因为我确实比较喜欢Windows Server 2012。虽然Windows Server 2008 R2确实很不错,但2012感觉更佳,这仅仅是我个人而言。好了今天就到这里,感谢大家的支持,有任何问题欢迎回复文章,我会尽快的回复大家。