19.01.2010, 19:46 | #1 |
Участник
|
System.Net.Mail + Batch + send mail
Не получается отослать емайл, когда запускаю BATCH
Выкидивает вот в этом месте: Цитата:
CLR object not initialized.
CLR Object could not be created. X++: attachementCollection = mailMessage.get_Attachments(); if (attachementCollection) { ---->> attachment = new System.Net.Mail.Attachment(tmpFilename); if (!attachment) throw error("errrorororoorororororo"); attachementCollection.Add(attachment); } Есть также активация CLR X++: try { clr = new InteropPermission(InteropKind::ClrInterop); clr.assert(); } catch { throw error("Cannot access CLR object"); } Спасибо Использую DYNAMICS AX 2009 PS: SysMailer не использую, так как try/catch не ловит Exception и выкидывает из цикла.. а надо пройтись по всем записям |
|
21.01.2010, 15:57 | #2 |
Участник
|
Попробуй чтобы класс вызвыющий ф-ции .neta работал на клиенте. RunOn Client. Была похожая проблема - вызывали ф-ции .neta для рисования штрих кода на репорте - а репорт печатался в батче. Без батча был OK а в батче вылетал. Заработало только когда вызов запихал в класс c RunOn cleint и до кучи ему метод - client public .....
|
|
21.01.2010, 17:27 | #3 |
MCTS
|
Цитата:
SysMailer не использую, так как try/catch не ловит Exception и выкидывает из цикла.. а надо пройтись по всем записям
|
|
22.01.2010, 14:39 | #4 |
Участник
|
Всё в порядке:
1.) надо "RunOn Client" 2.) + вызвать Dispose() на "AttachmentCollection", чтоб файлы не-"lock"-его |
|
18.10.2010, 11:55 | #5 |
Участник
|
Подниму старую тему, так как начала появлятся тот же баг...
При посылки на несуществуюший или внешний е-майл (ну типа СМТП настроен так, что можно только по домену посылать), то не ловится Exception. Архитектура такая - Web -> .NET Connector -> Axapta static method. Выполняя код в Ахапте - Exeption ловится,.. Через WEB, - Exception просто проподает, и код дальше не выполняется.. хота ВЕБ не грохается.. то есть .NET Connector не умерает и непрерывает код в .NET/ASP апликации. Где копать? Конструкция такая: X++: clr = new InteropPermission(InteropKind::ClrInterop); clr.assert(); try { mymail.Send(mailmessage); } catch (Exception::CLRError) { throw error(...); // не доходет сюда } catch { throw error(..); // не доходет и сюда!! } info("Зы..."); // можно печатать что хочешь, через ВЕБ сюда не дойдешь :( if (mailmessage) mailmessage.Dispose(); CodeAccessPermission::revertAssert(); |
|
18.10.2010, 12:16 | #6 |
Administrator
|
Вот тут (FTP в AX4) был приведен пример как отловить ошибки не на уровне АХ. Может та конструкция поможет? (хотя если try/catch не ловится - дело хуже)
__________________
Возможно сделать все. Вопрос времени |
|
18.10.2010, 12:24 | #7 |
Участник
|
В том то и дело... неловится. Иначе бы я не спрашивал.
X++: catch /* ALL */ {} |
|
|
Похожие темы | ||||
Тема | Ответов | |||
dax-lessons: Alert user using Net send - x++ | 0 | |||
axaptapedia: Batch processing | 0 | |||
dax-lessons: Alert user using Net send - x++ | 0 |
|