У меня есть служба Windows .NET, которая самостоятельно размещает службу WCF. Затем эта служба WCF вызывает старый компонент COM, написанный на ATL в Visual Studio 6. Затем этот компонент COM создает компонент Excel.Application COM. Он вызывает различные методы в этом компоненте Excel COM, а затем вызывает SaveAs для него, чтобы завершить сохранение документа. Этот вызов метода SaveAs не выполняется. Служба Windows работает как локальная система, поэтому я подумал, что это может быть проблема с правами доступа. Поэтому я изменил службу Windows, чтобы она работала под моей учетной записью пользователя (просто зайдите в services.msc, остановите службу, свойства, войдите в систему изменений и перезапустите службу). Тем не менее, та же проблема сохраняется.
Я создаю быстрое тестовое приложение .NET Win Forms, а затем запускаю компонент COM. Это отлично работает. Приложение работает под моей учетной записью, поэтому я подумал, что запуск службы Windows под моей учетной записью будет иметь тот же эффект.
В чем проблема со службой Windows (даже если она работает под моей учетной записью)? И как мне это решить?