Axapta 在AX 2009中将附件文件添加到批处理作业生成的电子邮件时出错

Axapta 在AX 2009中将附件文件添加到批处理作业生成的电子邮件时出错,axapta,x++,dynamics-ax-2009,Axapta,X++,Dynamics Ax 2009,通过批处理作业“无法创建CLR对象”发送电子邮件时出错。如果没有附件,代码可以正常工作,对附件所在的文件和目录的权限也可以 这是我的密码: permissionSet = new Set(Types::Class); permissionSet.add(new InteropPermission(InteropKind::ClrInterop)); permissionSet.add(new FileIOPermission(_filename, 'rw')); CodeAccessPermis

通过批处理作业“无法创建CLR对象”发送电子邮件时出错。如果没有附件,代码可以正常工作,对附件所在的文件和目录的权限也可以

这是我的密码:

permissionSet = new Set(Types::Class);
permissionSet.add(new InteropPermission(InteropKind::ClrInterop));
permissionSet.add(new FileIOPermission(_filename, 'rw'));
CodeAccessPermission::assertMultiple(permissionSet);

smtpClient = new System.Net.Mail.SmtpClient();
smtpClient.set_Port(25);
smtpClient.set_DeliveryMethod(System.Net.Mail.SmtpDeliveryMethod::Network);
smtpClient.set_UseDefaultCredentials(true);
smtpClient.set_Host('smtp-out.adista.fr');

mail = new System.Net.Mail.MailMessage(sendFrom,sendTo);
mail.set_Subject(subject);
mail.set_IsBodyHtml(true);
mail.set_Body(emailBody);

mailAttachementCollection = mail.get_Attachments();
mailAttachment            = new System.Net.Mail.Attachment(filename);
mailAttachementCollection.Add(mailAttachment);

smtpClient.Send(mail);
CodeAccessPermission::revertAssert();
我进行了调试,错误出现在“邮件附件=新系统.Net.mail.attachment(文件名);”行中。是否存在路径编码错误?我使用了UNC路径,如“\network\directory\file.csv”和@path,硬编码路径和文件名,但出现了相同的错误。 我尝试使用sysmailer类,但在添加附件时也出现了错误。 有什么想法吗? 谢谢你的帮助


关于,

AOS服务帐户必须具有Windows文件权限才能读取文件


访问问题是批处理文件问题的最常见原因,或者可能仅次于非UNC文件名。

为了获得更多信息,您可以尝试打印异常详细信息-请参阅。此外,您可以使用
WinAPIServer::fileExists()
WinAPI::fileExists()
查看是否获得更多信息。