Собственный отчёт

  • В этой теме 2 ответа, 2 участника, последнее обновление 1 год назад сделано vg.
Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #27830
    vg
    Участник

    Здравствуйте!

    В процессе создания внешнего десктопного приложения для формирования отчётов в файлах Excel на C# столкнулся с ошибкой:

    System.Runtime.InteropServices.COMException (0x800A03EC): Приложению Microsoft Excel не удается получить доступ к файлу «C:\SCADA\SCADA Reports\CustomReports\RepModel.xlsx». Это может быть вызвано одной из следующих причин.

    • Указан несуществующий файл или путь.
    • Файл используется другой программой.
    • Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент.
    at Microsoft.Office.Interop.Excel.Workbooks.Open(String Filename, Object UpdateLinks, Object ReadOnly, Object Format, Object Password, Object WriteResPassword, Object IgnoreReadOnlyRecommended, Object Origin, Object Delimiter, Object Editable, Object Notify, Object Converter, Object AddToMru, Object Local, Object CorruptLoad)

    Использую стандартную библиотеку Microsoft Excel 16.0 Object Library.

    Теперь собственно почему я решил написать здесь:
    Для работы внешнего приложения использую в качестве службы сервера приложение ScadaServerMono.exe из дистрибутива Linux.
    Если запустить приложение (ServerMono) вручную, чтобы появилось консольное окно, то приложение отчёта, запускаемое из интерфейса Rapid SCADA отрабатывает корректно, а если использовать «Планировщик заданий»/»Task Sheduler», то процесс уходит в фоновые и во время работы внешнего вываливается ошибка, описанная выше.
    Дело осложнено тем, что на ПК используется загрузка браузера со стартовой страницей Rapid SCADA, чтобы операторы не могли свободно лазать по компьютеру. И собственно дело не доходит даже до автозагрузки, куда можно было бы кинуть ярлык или батник.

    Собственно почему может быть такая ошибка с «отказом доступа», если пользователь, который это дело запускает обладает правами, путь указан правильно и никакие процессы не занимают открываемый файл (ошибка происходит в момент попытки открыть шаблон отчёта).

    • Эта тема была изменена 1 год назад от vg.
    • Эта тема была изменена 1 год назад от vg.
    #27858
    Mikhail
    Модератор

    Добрый день!

    Технология COM — она такая. Если дать всем полный доступ на файл и папку, тоже не работает?

    Рекомендую для формирования отчётов перейти на библиотеку Closed XML, она работает с форматам напрямую, Excel на компьютере не требуется.

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

    #27870
    vg
    Участник

    Благодарю за ответ

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Вы должны авторизироваться для ответа в этой теме.