Ошибка при открытии документов 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);
     …

}

Конечно, скорее всего у этого может быть побочное действие, но на всякий случай может пригодиться.