Исключение из HRESULT: 0x80004004 (E_ABORT) - PullRequest
0 голосов
/ 02 июня 2018

Я работаю над VSTO Outlook AddIn Project, используя c #, и пытаюсь добавить DocumentItem в outlook, используя следующий метод -

    protected void CreateWordDocument(string strPhysicalFilePath, Outlook.Folder ParentFolder)
    {

        Outlook.DocumentItem objDocItem = null;
        Outlook.Attachment objAtt = null;

        try
        {


            objDocItem = ParentFolder.Items.Add("IPM.Document");
            objAtt = objDocItem.Attachments.Add(strPhysicalFilePath, );

            objDocItem.Subject = objAtt.FileName;

            string strFileType = Path.GetExtension(strPhysicalFilePath, );

            switch (strFileType)
            {
                case ".doc":
                case ".docx":
                    objDocItem.MessageClass = "IPM.Document.Word.Document.8"; break;
                case ".xls":
                case ".xlsx":
                    objDocItem.MessageClass = "IPM.Document.Excel.Sheet.8"; break;
                case ".pps":
                case ".ppt":
                case ".pptx":
                    objDocItem.MessageClass = "IPM.Document.PowerPoint.Show.8"; break;
                case ".txt":
                    objDocItem.MessageClass = "IPM.document.txtfile"; break;
            }

            objDocItem.Save();

        }
        catch (Exception ex)
        {
            ErrorLog.WriteError("ClassName", "CreateWordDocument()", ex.Message);               
        }
        finally
        {
            if (objDocItem != null) Marshal.ReleaseComObject(objDocItem);
            if (objAtt != null) Marshal.ReleaseComObject(objAtt);               
        }

    }

, но получаю следующую ошибку в строке "objDocItem = ParentFolder.Items.Add (" IPM.Document ");"

Операция прервана (исключение из HRESULT: 0x80004004 (E_ABORT)) в outlook.Items.Add () в VSTO Outlook Addin.

То жекод работает нормально на моем компьютере, но выдает эту ошибку на другом компьютере.

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Я нашел решение для этого - возникла проблема с 32-битной или 64-битной платформой Target.На машине, где я получал исключение, был установлен 64-битный Office, а мой внешний вид add-in setup был построен на 32-битной платформе.Я перекомпилировал и встроил outlook add in setup с 64-битной целевой платформой и установил на эту машину.сейчас работает нормально.

0 голосов
/ 02 июня 2018

Microsoft в настоящее время не рекомендует и не поддерживает автоматизацию приложений Microsoft Office из любых необслуживаемых, неинтерактивных клиентских приложений или компонентов (включая ASP, ASP.NET, DCOM и NT Services), поскольку Office может работать нестабильно.поведение и / или взаимоблокировка при работе Office в этой среде.

Если вы создаете решение, работающее в контексте на стороне сервера, вы должны попытаться использовать компоненты, которые были сделаны безопасными для автоматического выполнения.Или вы должны попытаться найти альтернативы, которые позволяют хотя бы части кода работать на стороне клиента.Если вы используете приложение Office из серверного решения, приложению не хватит многих необходимых возможностей для успешной работы.Кроме того, вы будете рисковать стабильностью вашего общего решения.Подробнее об этом читайте в статье Особенности серверной автоматизации Office .

...