配置SharePoint Server使Office文档默认在客户端打开

 [作者:孙毅、葛伟华工程师 ,  Office/Project支持团队, 微软亚太区全球技术支持中心 ]

Office Web Apps作为基于SharePoint  Server  2010的特色产品,提供了在浏览器上打开和编辑Word、Excel、PowerPoint类型文档的能力。这样即使在一台 没有安装office的机器上访问SharePoint站点 来打开/编辑 Office  文档,也可以得到类似在Office客户端编辑文件的体验,这对于平板电脑、手机上网的用户会更加方便。

当您安装了Office Web Apps后,点击SharePoint文档库的Office文档,默认会在浏览器中打开,但是我们遇到这样的客户需求:我不想卸载Office Web Apps,但是我不希望默认在浏览器中查看文档,即点击文档库的Office文档时默认在客户端打开,而不是从浏览器打开。 

常规方法

首先确保客户端集成(Client Integration)功能开启:

  1. 在SharePoint管理中心中,单击”应用程序管理”,然后点击”管理网络应用程序”,选择站点所在的网络应用程序。
  2. 点击”验证提供程序”(Authentication Providers),点击默认的域,然后在”是否启用客户端集成”问题下选择”是”。

 

配置默认用客户端打开文档:

  1. 在 SharePoint 管理中心中,单击“网站操作”,然后单击“网站设置”。
  2. 在“网站设置”页上的“网站集管理”下,单击“网站集功能”。
  3. 在“功能”页上,对“默认情况下,在客户端应用程序中打开文档”功能,“单击激活”。
  4. 对“Office Web Apps”单击“停用”(Deactivate)。

 

修改完以后,每次点击文档库里的Office文档边上的下拉菜单,可以看到“在浏览器中打开”(View in Browser)和”在浏览器中编辑”(Edit in Browser)选项不见了,只剩下“在Microsoft Word中编辑”(Edit in Microsoft Word)。

如果“常规方法”不管用?

“常规方法”不管用的情况确实会发生,原因何在?首先我们需要知道“常规方法”背后的原理。

我们可以登录SharePoint的Application Server,访问下面的路径:C:\Program Files\Common Files\Microsoft Shared\Web Server Extension\14\Template\XML(请用实际安装路径代替Program Files), 找到下面的几个xml文件:

serverfilesword.xml

serverfilespowerpoint.xml

serverfileexcelserver.xml

这几个文件的作用就是让SharePoint知道,当用户打开某个Office类型文档时,应该调用哪个Office Web App的服务去处理文档。在记事本中打开这几个xml文件,以serverfilespowerpoint.xml为例(掌管PowerPoint文件类型的处理):

<?xml version="1.0" encoding="utf-8" ?>

<!-- Copyright (c) Microsoft Corporation. All rights reserved. -->

<ServerFiles>

    <Mapping FileExtension="pptx" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" CreateRedirectUrlTemplate= "/_layouts/CreateNewDocument.aspx?id=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="potx" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="ppsx" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="pptm" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="potm" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="ppsm" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="ppt" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="pot" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="pps" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" NoGetRedirect="TRUE"/>

    <Mapping FileExtension="odp" RedirectUrlTemplate= "/_layouts/PowerPoint.aspx?PowerPointView=ReadingView&PresentationId=|0" CreateRedirectUrlTemplate= "/_layouts/CreateNewDocument.aspx?id=|0" NoGetRedirect ="TRUE"/>

</ServerFiles>

上述的xml代码显示,所有FileExtension里指定的文件在浏览器上都会被重定向到PowerPoint.aspx,通过Office Web Apps打开。当“常规方法”不管用的时候,说明xml文件里的重定向依然生效。这种情况可能会有以下的原因:

  1. 该文档库所在的Web Application损坏。
  2. 关闭Office Web App的命令没有传给 SharePoint application server,比如没有权限。
  3. 网络问题

为了将Office文档的重定向取消,我们可以手动用“<!-注销的内容->”的方式注销掉<ServerFiles>…</ServerFiles>之间的语句, 或者将这些xml文件改为其他名字。这对下次再次启用Office Web App 没有影响。

“常规方法”的“常见错误”

很多时候用户为了禁用Office Web Apps,会到“管理服务应用程序”(Manage Service Application)中去,把Word Viewing  Service, PowerPoint Viewing Service等服务停止。

这样做的话,当用户还是想从浏览器在线浏览文档时,会遇到报错:

参考资料

配置启用浏览器功能的文档的默认打开行为(Office Web Apps)

http://technet.microsoft.com/zh-cn/library/ee837425.aspx

更改通过单击在库中打开文档的方式

http://office.microsoft.com/zh-cn/sharepoint-server-help/change-how-to-open-a-document-in-a-library-with-one-click-HA101729873.aspx