C# .NET - unable to solve the problem(read .ost file using C#.net)

Asked By kiran k on 16-Apr-12 07:01 AM

Microsoft.Office.Interop.Outlook.Application objOutlookApplication = new Microsoft.Office.Interop.Outlook.Application();

Microsoft.Office.Interop.Outlook.

NameSpace objNamespace = objOutlookApplication.GetNamespace("MAPI");

Microsoft.Office.Interop.Outlook.MAPIFolder objMAPIFolder = null;

try

{


objMAPIFolder = (MAPIFolder)objNamespace.OpenSharedFolder(@"\AppData\Local\Microsoft\Outlook\abc", null, null, null);

Folder objFolder = (Folder)objNamespace.GetDefaultFolder(OlDefaultFolders.olFolderInbox);

string name = objFolder.FullFolderPath;

}



catch (StackOverflowException ex)

{

// MessageBox.Show(e.Message);

}


following error i am getting


System.Runtime.InteropServices.COMException was unhandled
  Message="Invalid shared folder."
  Source="Microsoft Outlook"
  ErrorCode=-2147352567
  StackTrace:
   at Microsoft.Office.Interop.Outlook.NameSpaceClass.OpenSharedFolder(String Path, Object Name, Object DownloadAttachments, Object UseTTL)
   at WindowsApplication1.ReadOST.btnOSTRead_Click(Object sender, EventArgs e) in \WindowsApplication1\WindowsApplication1\ReadOST.cs:line 37
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.Run(Form mainForm)
   at WindowsApplication1.Program.Main() in \WindowsApplication1\WindowsApplication1\Program.cs:line 17
   at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
Somesh Yadav replied to kiran k on 16-Apr-12 07:06 AM

I wouldn't use a console command inside a function that is executing as a scheduled task.  Instead output you message to a log file.  th ewrite to the console could cause an exception

static

StreamWriter w;


try
 

{


String LogFile = "c:\\temp\\MyLogfile.Log";

w =

File.AppendText(LogFile);

}




DateTime CurrentTime = DateTime

.Now;


String[] TimeStr = CurrentTime.GetDateTimeFormats('G'

);

w.WriteLine(

"Process at : "

+ TimeStr[0]);

w.Flush();



w.Close();