System.Data.OleDB.OleDBExeption (0x80004005):尝试从 SharePoint 访问 .xlsx 文件时创建文件失败
System.Data.OleDB.OleDBExeption (0x80004005): Failure Creating File when trying to access .xlsx file from SharePoint
为了社区的利益,我在知道完整答案之前就问了这个问题。欢迎提出建议等
场景:
我正在为客户创建自动化测试。他们希望这些测试使用数据源,但希望它们由手动测试人员和 non-programming 工作人员在可能的情况下进行更新。我们找到的解决方案涉及在 SharePoint 网站上放置一个电子表格,其中的连接字符串在 app.config 中指定。该软件还确定 Microsoft 测试管理器中正在使用哪些测试设置(或者它是否在本地 debugged/run)并使用该信息来决定它需要哪个 sheets/rows。此解决方案在本地完美运行。
问题:
我们推送了一个新版本并将我们的测试用例与解决方案相关联。我试图 运行 来自 MTM 的测试。测试最初失败是因为测试代理没有安装 excel 或数据 driver 连接包。我解决了这个问题,并看到了您在标题中看到的内容:
"System.Data.OleDB.OleDBExeption (0x80004005): Failure Creating File"
这是一个荒谬的错误,因为 a) 我们从未创建 excel 文件,甚至没有写入文件 b) 我们在本地 运行ning 时从未遇到过此错误,并且测试代理具有相同的共享点权限。需要注意的是,Test Agent是VM 运行ning Server 2012.
这里有一些不对劲的线索:
- 我可以查看 SharePoint 站点,甚至可以在远程访问测试代理时使用 Internet Explorer 下载测试数据 .xlsx 文件。
- 但是我无法使用 Windows 资源管理器打开 SharePoint 网站。我收到错误 "We're having a problem opening this location in File Explorer. Add this web site to your Trusted Sites list and try again"。即使将站点添加到受信任的站点并确保服务器 up-to-date 有补丁(有一些知识库文章详细说明了这个问题)
,这个错误仍然存在
- 我也无法像在我的开发机器上那样将网络驱动器映射到 SharePoint 站点
我终于尝试了一些我应该早点尝试的东西。我将 app.config 中的连接字符串更改为本地文件位置(类似于 "C:/Folder/TestData.xlsx"),对新构建进行排队,从 SharePoint 下载测试数据,并将其放在测试代理的那个位置。结果是使用这个本地文件正确执行了测试。
如果有人知道此 AD 帐户如何成为 SharePoint 网站的所有者,但无法通过 Windows 资源管理器访问它,请在下面提供答案,您将获得一些 SO Karma。否则我会在解决问题后回复。
所以解决这个问题需要几个步骤:
- 在测试代理 VM 上启用“Desktop Experience Feature”。
- 这向 VM 添加了 "WebClient" 服务。我们将此服务自动设置为 运行。
- 我们还继续在计算机上映射 SharePoint 驱动器。我不认为这是必要的。
- THIS 文章中的疑难解答中提到了 WebClient 服务。我很沮丧,因为我没有检查这项服务,我不确定我为什么这样做。
为了社区的利益,我在知道完整答案之前就问了这个问题。欢迎提出建议等
场景:
我正在为客户创建自动化测试。他们希望这些测试使用数据源,但希望它们由手动测试人员和 non-programming 工作人员在可能的情况下进行更新。我们找到的解决方案涉及在 SharePoint 网站上放置一个电子表格,其中的连接字符串在 app.config 中指定。该软件还确定 Microsoft 测试管理器中正在使用哪些测试设置(或者它是否在本地 debugged/run)并使用该信息来决定它需要哪个 sheets/rows。此解决方案在本地完美运行。
问题:
我们推送了一个新版本并将我们的测试用例与解决方案相关联。我试图 运行 来自 MTM 的测试。测试最初失败是因为测试代理没有安装 excel 或数据 driver 连接包。我解决了这个问题,并看到了您在标题中看到的内容:
"System.Data.OleDB.OleDBExeption (0x80004005): Failure Creating File"
这是一个荒谬的错误,因为 a) 我们从未创建 excel 文件,甚至没有写入文件 b) 我们在本地 运行ning 时从未遇到过此错误,并且测试代理具有相同的共享点权限。需要注意的是,Test Agent是VM 运行ning Server 2012.
这里有一些不对劲的线索:
- 我可以查看 SharePoint 站点,甚至可以在远程访问测试代理时使用 Internet Explorer 下载测试数据 .xlsx 文件。
- 但是我无法使用 Windows 资源管理器打开 SharePoint 网站。我收到错误 "We're having a problem opening this location in File Explorer. Add this web site to your Trusted Sites list and try again"。即使将站点添加到受信任的站点并确保服务器 up-to-date 有补丁(有一些知识库文章详细说明了这个问题) ,这个错误仍然存在
- 我也无法像在我的开发机器上那样将网络驱动器映射到 SharePoint 站点
我终于尝试了一些我应该早点尝试的东西。我将 app.config 中的连接字符串更改为本地文件位置(类似于 "C:/Folder/TestData.xlsx"),对新构建进行排队,从 SharePoint 下载测试数据,并将其放在测试代理的那个位置。结果是使用这个本地文件正确执行了测试。
如果有人知道此 AD 帐户如何成为 SharePoint 网站的所有者,但无法通过 Windows 资源管理器访问它,请在下面提供答案,您将获得一些 SO Karma。否则我会在解决问题后回复。
所以解决这个问题需要几个步骤:
- 在测试代理 VM 上启用“Desktop Experience Feature”。
- 这向 VM 添加了 "WebClient" 服务。我们将此服务自动设置为 运行。
- 我们还继续在计算机上映射 SharePoint 驱动器。我不认为这是必要的。
- THIS 文章中的疑难解答中提到了 WebClient 服务。我很沮丧,因为我没有检查这项服务,我不确定我为什么这样做。