Приложение, использующее Microsoft.Office.Interop.Excel для открытия конфликта файлов Excel с сеансами RDP на сервере. - PullRequest
1 голос
/ 20 марта 2020

У меня недавно началось странное поведение на Windows Server 2016/2019. Я выполнял тесты, используя разные версии Excel (2016, 2019, 365), и проблема возникала случайно, когда на сервере открывался сеанс удаленного рабочего стола (некоторые RDP, инициированные с некоторых машин, не вызывали никаких проблем, в то время как некоторые другие приводили к тому, что приложение не работает).

Excel, открывающий код, довольно прост и работал в течение нескольких лет без каких-либо проблем:

string filePath = @"C:\excelFilePath.xlsx";
Application excelApp = new Application();
excelApp.Workbooks.Open(filePath , true, true);

При сбое мы получили следующее исключение:

Удаленный вызов процедуры не удался. (Исключение из HRESULT: 0x800706BE) System.Runtime.InteropServices.COMException (0x800706BE): сбой удаленного вызова процедуры. (Исключение из HRESULT: 0x800706BE) в Microsoft.Office.Interop.Excel.Workbooks.Open (строковое имя файла, объект UpdateLinks, объект ReadOnly, формат объекта, пароль объекта, объект WriteResPassword, объект IgnoreReadOnlyRecommended, происхождение объекта, разделитель объектов, объект редактируемый, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)

Для конфликтующего RDP я заметил, что процесс rdpinput.exe был активирован, в то время как у неконфликтующего не было никаких следов активации этого процесса. Если на этом сервере не открыт сеанс RDP, все работает нормально.

Есть идеи, как решить эту проблему? Нам все еще нужно иметь возможность RDP-сервера.

Спасибо!

...