|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
Добрый день! Есть приложение, которое должно вносить определенные изменения в Excel файл. Ниже часть кода using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Excel = Microsoft.Office.Interop.Excel; namespace WindowsFormsApplication3 { public class RunApp { public static void Run() { string PathUnloadTemplate = Application.StartupPath + "\\template.xls"; object missingValue = Type.Missing; LocalLog.AddLog("start"); try { Excel.Application ExcelApp = new Excel.Application(); ExcelApp.DisplayAlerts = false; //ExcelApp.DefaultSaveFormat = Excel.XlFileFormat.xlExcel7; try { ExcelApp.Workbooks.Open(PathUnloadTemplate, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, missingValue, true); LocalLog.AddLog("ExcelApp.Workbooks.Open SUCCESS"); } catch (Exception exc) { LocalLog.AddLog("ExcelApp.Workbooks.Open ERRORRRRRRRRRRRRRRRRRRRRRRRRRRR"); LocalLog.AddLog(exc.ToString()); return ; } ExcelApp.ActiveWorkbook.SaveAs(PathUnloadTemplate, missingValue, missingValue, missingValue, missingValue, missingValue, Excel.XlSaveAsAccessMode.xlNoChange, missingValue, missingValue, missingValue, missingValue, missingValue); LocalLog.AddLog("end"); } catch (Exception exc) { LocalLog.AddLog(exc.ToString()); return; } } } } Класс LocalLog пишет лог в текстовый файл. Приложение работает. Все ок. Проблемы начинаются при попытке запуска приложения из Планировщика задач (кстати при запуске из ms sql по команде xp_cmdshell аналогичная проблема). При выполнении строки ExcelApp.Workbooks.Open... программа падает в catch и выводит следующее сообщение: 27.04.2016 15:00:00 - System.Runtime.InteropServices.COMException (0x800A03EC): Приложению Microsoft Excel не удается получить доступ к файлу "D:\2\template.xls". Это может быть вызвано одной из следующих причин. • Указан несуществующий файл или путь. • Файл используется другой программой. • Имя книги, которую вы пытаетесь сохранить, совпадает с именем другой книги, открытой в данный момент. в 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) в WindowsFormsApplication3.RunApp.Run() Подскажите пож-та в чем может быть дело? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:36 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
semI-PACK, судя по всему, прав не хватает у шедулера. Смотрите в сторону windows scheduler permissions. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:41 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
AxeleronsemI-PACK, судя по всему, прав не хватает у шедулера. Смотрите в сторону windows scheduler permissions. Было бы здорово, если бы так просто решалось, но нет. Добавлялась задача от имени Администратора, учетная запись была выбрана текущая, под которой выполнение происходит без ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:44 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
Были подозрения, что проблема в CurrentCulture (проблема описана тут - http://www.made4dotnet.com/Default.aspx?tabid=141&aid=15). Но тоже не помогло. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:46 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
У экселя есть еще такая багофича что он не работает без профиля пользователя. Надо создать папку Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:47 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
Правильная ссылка - http://www.made4dotnet.com/Default.aspx?tabid=141&aid=15 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:47 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
Dima TУ экселя есть еще такая багофича что он не работает без профиля пользователя. Надо создать папку Код: c# 1.
Создал, не помогло :( ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:52 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
а что будет, если шедулить через ncron ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:56 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
а почему вы пытаетесь сделать WindowsForms Application ? вам нужно делать Console Application ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:59 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
semI-PACK, а если запустить программу через планировщик, только от себя - то есть в планировщике выбираешь свою задачу и вызываешь пункт меню "Выполнить", то происходит exception или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 15:59 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
Vladimir Baskakovа что будет, если шедулить через ncron ? Не работал с ним, а чем он существенно может отличаться от стандартного виндового, используемого просто для запуска приложения? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 16:01 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
vb_subsemI-PACK, а если запустить программу через планировщик, только от себя - то есть в планировщике выбираешь свою задачу и вызываешь пункт меню "Выполнить", то происходит exception или нет? Пробовал, также ошибка пишется в лог. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 16:02 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
semI-PACKDima TУ экселя есть еще такая багофича что он не работает без профиля пользователя. Надо создать папку Код: c# 1.
Создал, не помогло :( у меня после этого шаманства из планировщика без пользовательской сессии через COM эксель начинал работать. Создай еще эту папку Код: c# 1.
systemprofile - это профиль пользователя, который используется при запуске без пользовательской сессии. А экселю зачем-то нужна папка Desktop ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 16:03 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
semI-PACK, попробуй путь к xls файлу прописать константой на локальной машине ("C:\test\" и позапускать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 16:07 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
semI-PACK, кстати, а точно процесс Экселя не висит в задачах? Такое бывает когда самого Экселя даже не видно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 16:08 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
Похоже все-таки в папках дело. Вторую создал? https://social.msdn.microsoft.com/Forums/en-US/b81a3c4e-62db-488b-af06-44421818ef91/excel-2007-automation-on-top-of-a-windows-server-2008-x64?forum=innovateonoffice The open operation ends in this exception: Service cannot be started. System.Runtime.InteropServices.COMException (0x800A03EC) ... Answers: This solution is ... ・Windows 2008 Server x64 Please make this folder. C:\Windows\SysWOW64\config\systemprofile\Desktop ・Windows 2008 Server x86 Please make this folder. C:\Windows\System32\config\systemprofile\Desktop ...instead of dcomcnfg.exe. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 16:16 |
|
Проблема с использованием Interop Excel
|
|||
---|---|---|---|
#18+
semI-PACKVladimir Baskakovа что будет, если шедулить через ncron ? Не работал с ним, а чем он существенно может отличаться от стандартного виндового, используемого просто для запуска приложения? бесхитросностью. он точно запускает все из под того же пользователя где сам, как будто руками. у меня такое ощущение сложилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.04.2016, 16:49 |
|
|
start [/forum/topic.php?fid=20&gotonew=1&tid=1400636]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
10ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 291ms |
total: | 453ms |
0 / 0 |