Ошибка при открытии документов Microsoft Office 2010 из библиотек SharePoint 2010 –“Couldnot open file”
В интернете есть множество описаний примеров данной ошибки, впрочем, как и вариантов ее решения.
Достаточно понятны основные причины ее появления:
- Редактирование атрибутов файла (или самого файла) через Api, в то время пока файл редактировался с помощью, например, Word;
- Ошибка в работе самой программы Word или Excel, включая ее зависание, ошибки и баги, а также неправильную работу с определенными местоположениями, такими как: WebDav или DFS.
В общем основная причина – это наличие блокировки. которой быть в данный момент по идее не должно.
Практически с вероятность 100% к данной ошибке приводит наличие обработчика события ItemAdded или ItemAddidng для документов Offce. То же касается и событий обновления.
Как с этим бороться? Существует мнение, что это будет исправлено в одном из обновлений. Я читал об этом в интернете, но официальной информации у меня нет.
Есть рекомендация подождать 10 минут или сохранить файл в другое место и тому подобное.
Есть конечно более спорное и более радикальное решение. Мне оно часто помогает. Его суть в том, чтобы самому руками снимать блокировки с файлов. Например так:
public override void ItemUpdated(SPItemEventProperties properties)
{
if (true == String.IsNullOrEmpty(properties.AfterUrl))
return;
SPFile file = properties.ListItem.File;
if (null != file && true == file.Exists && file.LockType != None)
file.ReleaseLock(file.LockId);
…
}
Конечно, скорее всего у этого может быть побочное действие, но на всякий случай может пригодиться.