При попытке открыть электронную почту Outlook из веб-приложения в диспетчере IIS получить сообщение об ошибке Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

#c# #asp.net #outlook

#c# #asp.net #outlook

Вопрос:

Мой ASP.NET приложение имеет функциональность, которая имеет кнопку электронной почты в asp.net таблица gridview, при нажатии на которую открывается электронная почта Microsoft Outlook. Код приложения работает в среде разработки Visual Studio. Однако ошибка возникает, когда приложение на сервере IIS Manager. Я получаю сообщение об ошибке. System.Runtime.Службы взаимодействия.COMException: получение фабрики классов COM для компонента с CLSID {0006F03A-0000-0000- C000-000000000046} сбой из-за следующей ошибки: класс 80040154 не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)). Код приведен ниже:

 public void btnSendEmail(object sender, EventArgs e)
    {
        var email = "";
        var strSubject = "";
        var emailButton = (Control)sender;

        GridViewRow item = (GridViewRow)emailButton.NamingContainer;

        email = item.Cells[4].Text.Replace("amp;nbsp;", "");
        strSubject = item.Cells[1].Text.Replace("amp;nbsp;", "")   " "   item.Cells[2].Text.Replace("amp;nbsp;", "");
        if (email == "")
        {
            lblMessage.Text = "There is no email address found for attorney "   strSubject   "!";
        }
        else
        {
            Microsoft.Office.Interop.Outlook.Application objApp = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.MailItem objMailItem = objApp.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem);

            objMailItem.Subject = "Dear, "   strSubject;
            objMailItem.To = email;
            objMailItem.Display(true);
        }
    }
enter code here
 

Комментарии:

1. Возможно, вы ожидаете, что электронное письмо открыто на клиенте?

2. Когда пользователь открывает электронное письмо, ему необходимо открыть Outlook на своем компьютере

3. Код пытается открыть Outlook на сервере, поскольку там выполняется код. Вы не можете принудительно открыть Outlook на клиентском компьютере.

4. ХОРОШО, так что, если бы я установил Outlook на сервере IIS, это сработало бы?

5. Нет, этого не произойдет. Он все равно будет открыт на сервере.