2016-11-27 8 views
0

私はVBでASP.NETでアプリケーションを作成しました。私は次のコードを書いた。ASP.NETを使用してOutlookを開こうとしています

ローカルホストでエラーが発生していますが、アプリケーションから実行しているときに正常に動作しています。

私はDCOMCNFG - > Outlook/Officeのエントリが存在しないことを確認しました。

ローカルホスト/サーバーのアプリケーションから添付ファイルを使用してOutlookを開く方法を教えてください。

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を起動する場合は、サーバー上のコードからは実行できません。ウェブサイトがそれを閲覧するコンピュータ上でプログラムを実行できるかどうかを想像してください。 Webサーバー上でOutlookを呼び出すことを希望している場合は、Officeアプリケーションを確実に使用することができず、Webサーバーにはない対話型のUIを持つように設計されているため、再び不運になります。ただし、サーバーから電子メールを送信することはできます。 [System.Net.Mail](http://www.systemnetmail.com/default.aspx)サイトでその件名をカバーしています。 –

答えて

0

Outlookを使用せずに.pstファイルを処理できるサードパーティのコンポーネントを使用する必要があります。

マイクロソフトでは現在、Officeが自動的に非表示の非対話型クライアントアプリケーションまたはコンポーネント(ASP、ASP.NET、DCOM、およびNTサービスを含む)からMicrosoft Officeアプリケーションの自動化を推奨しておらず、サポートしていません。この環境でOfficeを実行すると、不安定な動作やデッドロックが発生する。

サーバー側のコンテキストで実行されるソリューションを構築する場合は、無人で実行するために安全にされたコンポーネントを使用するようにしてください。または、コードの少なくとも一部がクライアント側で実行できるようにする代替手段を見つけようとする必要があります。サーバー側のソリューションからOfficeアプリケーションを使用する場合、アプリケーションには正常に実行するために必要な機能が不足しています。さらに、全体的なソリューションの安定性でリスクを冒すことになります。詳細については、Considerations for server-side Automation of Officeの記事をご覧ください。

関連する問題