在SharePoint Online中的Excel Services

我有一个工作代码,使用在本地SharePoint上发布的Excel Services:

var _service = new ExcelService { UseDefaultCredentials = true }; Status[] _status; var _sessionId = _service.OpenWorkbookForEditing("http://<sharepoint url>/<list>/<file>.xlsx", "en-US", "en-US", out _status); 

ExcelService是指向http://<sharepoint url>/_vti_bin/excelservice.asmx的有效Web引用

但是,在SharePoint Online上使用Excel Services时,相同的代码不起作用。

我能够得到API版本:

 _service.GetApiVersion(out _status); 

Excel Web服务(16.0)

但是打开工作簿会抛出一个SoapException

我们找不到你想要的文件。

我尝试通过凭据:

 var _pass = new SecureString(); foreach (char _c in "<SP Online password>".ToCharArray()) { _pass.AppendChar(_c); } var _cred = new SharePointOnlineCredentials("<SP Online login>", _pass); var _service = new ExcelService { Credentials = _cred }; 

证书似乎是有效的,即这个代码的作品:

 // login test using (ClientContext _sp = new ClientContext("<SP Online url>") { Credentials = _cred }) { var _web = _sp.Web; _sp.Load(_web); _sp.ExecuteQuery(); Console.WriteLine(_web.Title); } 

我错过了什么?

  • 这似乎是一个身份validation问题,但很难说,因为错误信息是非常不透明的。 我怎样才能find有关错误的更多细节?
  • Excel Services是否仅针对特定许可证公开?

请注意,我可以使用Excel REST API,但在我的scheme中不起作用(大量编辑)。