理解WebDAV和FPRPC
==================
在SharePoint Explorer View中有两个重要的相关组件, Web Client Service和WebFolders.
Microsoft WebDAV的实现是基于通过HTTP协议的公开标准的authoring和versioning的. Windows开发团队用来为WebDAV提供支持的就是这个Web Client Service.
Web Client Service已经被创建为Windows操作系统的一部分. 任何在Windows上运行的客户端应用程序都有能力透明地访问WebDAV资源.
FPRCP是一个微软技术, 主要使用在增值的FrontPage capabilities上. 支持FPRPC的组件比提供WebDAV的组件要老. 显示地使用由FPRPC提供的功能要求有特别的知识和开发者提供的代码.
Windows WebDAV Client 细节
==================
在Windows XP中对WebDAV的支持只有一个客户端. Windows Server 2003既包括WebDAV客户端(web client service)也包括WebDAV服务器(IIS 6.0的WebDAV extension). 在操作系统中建立WebDAV客户端能力有下面几个明显的好处:
- 为你访问有IIS和SharePoint提供的web folder, 提供了一种集成了的方式.
- 使用Windows Explorer通过WebDAV管理文件和文件夹
- 支持使用Windows Explorer, 网上邻居, 和net use命令, 或是WNET API把web folder映射成为驱动器,
由于web client service是与操作系统的一起构建的, 它提供的look and feel方面的资源与Windows XP和Windows Server 2003一致. 这就是我为什么Windows Explorer 中的图标和右键菜单中的选项与在使用Web client service和WebDAV作为底层通信机制是一样.
Web Client的另一个小小的优势是, 它是内建的network provider之一. 这意味着, 无论何时使用Windows networking API试图建立一个网络连接的时候, web client service都会自动地被查询到. 你可以通过下面的步骤来查看已经安装到你的计算机上的network provider.
- On the Start menu, right-click My Network Places and then click Properties.
- On the top menu bar, click Advanced and then click Advanced Settings.
- Click the Provider Order tab.
你会看到一个拥有按顺序排列的provider的列表. 下面的截屏就展现了在WindowsXP中默认的privider列表. 注意, web client network是列表中的最后一项.
你不应该修改provider的顺序, 除非你非常确定这些修改将会造成的影响. 比如说, 调换Microsoft Windows Network 和Web Client Network 的顺序会提高访问WebDAV资源的性能, 但是这却能带来你不想要的副作用.
通过强制让client优先使用WebDAV来连接, 你在访问Microsoft Windows Network (SMB) 资源的时候, 每次都要等待WebDAV失败后才能继续连接. 而典型用户中占压倒性的绝大多数的连接都是访问SMB资源的. 所以说呢, 更改他们两个的顺序会明显地降低整个client的总体性能.
另外, 如果让webdav优先, 在下面的事实为真的时候, 你是不能连接到某些服务器上的.
- 你在服务器上没有禁止strick name-checking
- 你试图使用SMB来访问他们.
- 你在使用非FQDN非NetBIOS名字.
FrontPage RPC的细节
===================
WebFolders是让FrontPage和Office套装中的其他应用程序(word, excel)来通过HTTP协议管理内容和编辑文档的潜在技术.
跟Web Client Services不同, WebFolder并不是一个Windows network provider. 由于如此, 它有一些你应该注意到的局限性:
- 只有使用WebFolder API的应用程序能够通过FPRPC来创建连接. 在操作系统中包括了这项技术的应用程序仅有Windows Explorer, My Network places, 和Internet Explorer. FPRPC可以被任何应用程序包括进去, 方法就是使用 FrontPage Server Extensions Remote Procedure Call protocol.
- WebFolder目前仅在一个操作系统中存在, WindowsXP. 这意味着Windows Server 2003在out of box的情况下是不支持FPRPC的.
- WebFolders并不是一个Windows network provider, 所以你不能通过Windows Explorer或net use命令来映射驱动器.
事实上WebFolder组件是比Windows XP更早的组件, 这就是为什么WebFolder中的右键菜单中的选项与Windows Exploer中的不匹配的原因.
协议特性
==================
FPRPC和WebDAV各有一套不同的能力, 这是因为他们的设计初衷的不同. 正如我们之前提到过的, FPRPC最初是被设计用来作为一个支持内容编辑和管理的机制的. 它仅仅是想要被Microsoft FrontPage用来与由FrontPage Server Extensions提供的某些功能进行交互的, 而不是作为一种常用的网络协议.
事实上这两个协议是在不同的目的下设计出来的, 所以他们有不同的特性, 其中有些有重叠. 这重叠的部分允许他们被sharepoint的explorer view来交互地使用.
事实上他们并不提供一样的特性集, 这意味着在某些情况下客户可能会使用一个协议而不是另外的一个. 不幸的是, 并没有用户友好的方式来强制使explorer view来使用某一种特定的协议.
在试图在explorer view中使用一个协议之前, 你首先应该理解每一种协议的特性. 我们提供了一个他们特性的列表:
Feature | Windows WebDAV | FPRPC |
Browse | Yes | Yes |
Open/Save | Yes | Yes |
Win32 APIs | Yes | No |
UNC/Mapped Drive | Yes | No |
SSL | No | Yes |
Custom Properties | No | Yes |
Alternate encodings | No | Yes |
Basic Authentication | Registry change | Yes |
FPSE Integration | No | Yes |
Root level browsing | Yes (requires DavWWWRoot) | Yes |
Alternate web ports | No | Yes |
在获得了上面的特性之后, 你应该对于每种协议的能力有了更好的了解了, 也对于应该用哪一个协议而不是另外的一个有了一些idea.
DavWWWRoot 是一个特别的关键字, 用于高速WebDAV客户端, 你在引用WebDAV服务器的根目录. 映射驱动器连接到一个Sharepoint服务器上是一个比较简单的验证例子. 下面就是一个例子:
Net Use * http://www.adatum.com/DavWWWRoot
双面夏娃- Explorer view的两种面貌
======================
使用WebDAV的Explorer View
1. 文件夹有3D外观, 就跟在Windows XP中看到的一样.
2. 浏览器栏还有与Windows Explorer相同的右键菜单.
使用FPRPC协议的Explorer View
1. 文件夹是像Windows 98一样的老旧, 平坦的外观.
2. 浏览器栏和右键菜单里缺少了好多可用的选项.
摘译自:
Whitepaper - Understanding and Troubleshooting the SharePoint Explorer View