2017-07-11 17 views
0

OutlookとInteropサービスを通じて自動化された電子メールを送信し、次の例外を取得するアプリケーションを開発しようとしています。以下は例外を含むコードです。Outlookサービスの相互運用による自動電子メールを送信するためのWindowsサービスの作成

try 
    { 
     Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); 
     Microsoft.Office.Interop.Outlook.MailItem mailItem = (Outlook.MailItem)app.CreateItem(Outlook.OlItemType.olMailItem); 
    mailItem.Subject = "Details of Subject"; 
    mailItem.To = "[email protected]"; 
    mailItem.Body = "Automated email testing" 
    // mailItem.Attachments.Add(logPath);//logPath is a string holding path to the log.txt file 
    mailItem.Importance = Outlook.OlImportance.olImportanceHigh; 
    mailItem.Display(false); 
    mailItem.Send(); 
} 
catch (Exception ex) 
    { 
     WriteErrorLog("\n"); 
     WriteErrorLog(ex.Message); 
     WriteErrorLog(ex.StackTrace); 
} 

、その例外をスロー:

System.Runtime.Remoting.RemotingServices.AllocateUninitializedObject(RuntimeType objectType) at System.Runtime.Remoting.Activation.ActivationServices.CreateInstance(RuntimeType serverType) at System.Runtime.Remoting.Activation.ActivationServices.IsCurrentContextOK(RuntimeType serverType, Object[] props, Boolean bNewObj) 
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) 
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) 
at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
at System.Activator.CreateInstance(Type type) 
at WServiceMixInOne.ConnectionLogs.MainClass() in C:\Users\admin\documents\visual studio 2017\Projects\WServiceMixInOne\WServiceMixInOne\ConnectionLogs.cs:line 120 

ライン120は、1行目アプリ=新しいMicrosoft.Office.Interop.Outlook.Application(です)。

+0

Outlookはマシンにインストールされ、少なくとも1回は起動しましたか? –

+0

スローされる例外のタイプは何ですか? – mjwills

+0

はい、Outlookがインストールされ、設定されています。通常のメールでも問題ありません。 例外はランタイムアクティベータです。私はそれにアクセスするための見通しのインスタンスを作成する必要がありますか? – NoobOwl

答えて

0

バックグラウンド処理からOutlookを終了してください。そしてコードを実行します。

+0

Windowsサービスは実行されません。バックグラウンドタスクとして実行され、ユーザーが定義したイベントビューアーでログが生成されます。 – NoobOwl

関連する問題