2015-05-05 3 views
0

У меня есть надстройка Excel для Office 2013, разработанная с использованием VSTO и RMS-файла, защищенного Azure Rights Management System. Когда я открываю файл RMS с помощью надстройки, например следующим образом:Исключение HRESULT: 0x800A03EC, когда файл управления правами на открытие с использованием Application.Open()

Application.Workbooks.Open(FilePath,Type.Missing,Type.Missing,Type.Missing, 
         Type.Missing,Type.Missing,Type.Missing,Type.Missing, 
         Type.Missing,Type.Missing,Type.Missing,Type.Missing, 
         Type.Missing,Type.Missing,Type.Missing); 

я получаю исключение:

Исключение типа «System.Runtime.InteropServices.COMException» произошло в XXXXX.dll, но не был обработан в пользовательском коде

Исключение из HRESULT : 0x800A03EC

У кого-нибудь есть идея, почему я получаю это исключение? Я искал информацию об этом коде ошибки, но не смог найти подходящего для моей ситуации.

+0

Какой путь к файлу передается методу Open? –

+0

Filepath в точности подобен этому, кроме имени пользователя: C: \ Users \ xxxxxx \ AppData \ Local \ Temp \ Test.xlsx – Kyohei

ответ

0

Я нашел ответ на свой вопрос. При открытии RMS-файла с использованием Microsoft.Office.Interop.Excel.Workbooks.Open() необходимо выполнить вход в Excel с пользователем, у которого есть разрешение на открытие этого файла. FYI, это верно для PowerPoint. PowerPoint выбрасывает HRESULT E_FAIL. Слово является исключением. ОДНАКО, Слово является исключением. Word запрашивает у вас учетные данные, если вы не вошли в систему, после предоставления действительных учетных данных открывается. Я понятия не имею, почему эти приложения ведут себя по-другому.