System.Data.OleDB.OleDBExeption(0x80004005):尝试从SharePoint访问.xlsx文件时创build文件失败

为了社区的缘故,我知道完整的答案之前,我正在问这个问题。 随意提出build议等。

场景:

我正在为客户端创build自动化testing。 他们希望这些testing使用数据源,但是如果可能的话,希望它们由手动testing人员和非编程人员进行更新。 我们着陆的解决scheme涉及在SharePoint网站上放置一个电子表格,并在app.config中指定连接string。 该软件还确定在Microsofttestingpipe理器内使用什么testing设置(或者是否在本地debugging/运行),并使用该信息来决定它需要哪些表/行。 这个解决scheme在当地完美工作。

问题:

我们推出了新的版本,并将testing案例与解决scheme联系起来。 我试图从MTM运行testing。 testing最初失败,因为testing代理没有安装Excel或数据驱动程序连接包。 我解决了这个问题,并提出了你在标题中看到的内容:

“System.Data.OleDB.OleDBExeption(0x80004005):失败创build文件”

这是一个荒谬的错误,因为a)我们从来没有创build一个excel文件,甚至写入它b)本地运行时,我们从来没有遇到过这个错误,并且testing代理使用的帐户具有相同的sharepoint权限。 应该指出,testing代理是运行Server 2012的虚拟机。

这里有一些线索有些不对劲:

  • 我可以查看SharePoint网站,甚至在远程login到testing代理时使用Internet Explorer下载testing数据.xlsx文件。
  • 不过,我无法用Windows资源pipe理器打开SharePoint网站。 我收到错误“我们在文件资源pipe理器中打开这个位置时遇到问题,请将此网站添加到您的”可信站点“列表中,然后重试。 即使在将该站点添加到受信任的站点之后,该错误仍然存​​在,并确保服务器是最新的修补程序(有些知识库文章详细说明了此问题)
  • 我也无法将networking驱动器映射到我的开发机器上的SharePoint网站

最后,我尝试了一些我应该早得多的东西。 我将app.config中的连接string更改为本地文件位置(类似于“C:/Folder/TestData.xlsx”),排队一个新的构build,从SharePoint下载testing数据,并将其放在testing的位置代理。 结果是testing使用这个本地文件正确执行。

如果有人知道此AD帐户如何成为SharePoint站点的所有者,但无法通过Windows资源pipe理器访问,请在下面提供答案,您将得到一些SO Karma。 否则,一旦我解决问题,我会回应。

所以解决这个问题需要几个步骤:

  • 在testing代​​理VM上启用“ 桌面体验function ”。
  • 这将“WebClient”服务添加到VM。 我们将此服务设置为自动运行。
  • 我们也继续在机器上映射SharePoint驱动器。 我不相信这是必要的。
  • 本文中的疑难解答中提到了WebClient服务。 我很不高兴,我没有检查这项服务,我不知道为什么我这样做。
Interesting Posts