我们一直在使用.Net Graph SDK来将SharePoint Online Word文档检索为PDF。就在最近,这对我们停止了工作,代码没有变化。
通过检查Graph SDK生成的URL,然后使用REST客户端手动请求URL,我已经根据官方文档here验证了Graph SDK是否正在运行。在使用302响应Location标头预先身份验证的链接检索文档的最终请求中,如果对文档库中的任何文档进行任何尝试,都会收到以下错误:
“ OneDrive.Media.Utilities.MemoryStreamHelper”的类型初始值设定项引发了异常。
如果没有format = pdf,则可以很好地下载原始.docx文件。我不确定是否会有所作为,但是我们正在使用USGovVirginia云。
public async Task<Stream> GetFileAsPDF(string fileId, string driveId, CancellationToken cancellationToken = default)
{
var queryOptions = new List<Option>
{
new QueryOption("format", "pdf")
};
var file = await _graphClient.GetAuthenticatedClient()
.Drives[driveId]
.Items[fileId]
.Content
.Request(queryOptions)
.GetAsync(cancellationToken);
return file;
}
预期:下载Word文档的PDF。
实际:收到以下回复:
标题:
Cache-Control: private
Content-Type: application/json
Server: Microsoft-IIS/10.0
X-AspNetMvc-Version: 5.2
X-CorrelationId: f3f18537-d0c5-4e70-afaf-c37d64d1897b.5cace27c-14e8-4d3c-afe7-144a3060bfc8
X-OneDriveMeTA-Version: 1.0.7061.15125
X-ErrorCode: General_TypeInitialization
X-ErrorType: Unexpected
X-AspNet-Version: 4.0.30319
Date: Mon, 13 May 2019 20:04:09 GMT
Content-Length: 191
身体:
{
"error": {
"code": "generalException",
"message": "The type initializer for 'OneDrive.Media.Utilities.MemoryStreamHelper' threw an exception.",
"innererror": {
"code": "General_TypeInitialization"
}
}
}