2016-11-27 3 views
0

Я создал приложение в ASP.NET с помощью VB. Я написал следующий код.Попытка открыть Outlook с помощью ASP.NET

Это сообщение об ошибке в localhost, но когда я запускаю его из своего приложения, он работает нормально.

Я проверил DCOMCNFG -> Outlook/запись в офисе нет.

Пожалуйста, сообщите мне, как открыть Outlook с приложением из моего приложения на localhost/server?

ByVal recipients As List(Of String), 
    ByVal smtpAddress As String, 
    ByVal attachments As List(Of String)) 

    ' Create a new MailItem and set the To, Subject, and Body properties. 
    'Dim application As New Outlook.Application 
    Dim application As New Outlook.Application() 
    Threading.Thread.Sleep(2000) 

    Dim newMail As Outlook.MailItem = DirectCast(application.CreateItem(Outlook.OlItemType.olMailItem), Outlook.MailItem) 

    ' Set up all the recipients. 
    For Each recipient In recipients 
     newMail.Recipients.Add(recipient) 
    Next 

    If newMail.Recipients.ResolveAll() Then 
     newMail.Subject = subject 
     newMail.Body = body 
     For Each attachment As String In attachments 
      newMail.Attachments.Add(attachment, Outlook.OlAttachmentType.olByValue) 
     Next 
    End If 

    newMail.Display(True) 
+1

Если вы надеетесь вызывать Outlook на клиентской машине, это невозможно из кода на сервере. Представьте себе, может ли какой-либо веб-сайт запускать любую программу на компьютере, который ее просматривает. Если вы надеетесь вызывать Outlook на веб-сервере, снова вам не повезло, потому что приложения Office не могут быть надежно использованы таким образом: они предназначены для создания интерактивного пользовательского интерфейса, которого нет у веб-сервера. Однако вы можете отправлять электронную почту с сервера; сайт [System.Net.Mail] (http://www.systemnetmail.com/default.aspx) охватывает тему. –

ответ

0

Вам необходимо использовать сторонние компоненты, которые могут обрабатывать PST-файлы без участия Outlook.

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

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