new Outlook.Application() thorws error if Outlook app is running - email

Hi I am having similar issue
CreateObject on Outlook.Application fails on Outlook 2010 when Outlook is running under a different account
but want customized solution.
I want to sent email with attachment for which my code works but if OutLook app is already opened as desktop app, then I am getting this error.
Requirement: I want to open outlook window showing everything like when we compose message in window.
I am doing this:
Microsoft.Office.Interop.Outlook.Application outlookApp = new Outlook.Application();
Getting this error if OutLook app is running.
Error sending a report: System.Runtime.InteropServices.COMException (0x80080005): Retrieving the COM class factory for component with CLSID {0006F03A-0000-0000-C000-000000000046} failed due to the following error: 80080005 Server execution failed (Exception from HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE)).
at ReportViewerControl.SendOutLookMail_Click(Object sender, EventArgs e) in c:\Projects\MSCatalog\MS SQLSERVER\Web\UserControls\Reports\ReportViewerControl.ascx.cs:line 262
When I close OutLook no error and everything works like I want. I dont want to close OutLook pro grammatically as other solutions suggested here
Just 1 more thing to mention that I am using
Microsoft.Office.Interop.Outlook.dll
is this 32bit/64bit problem? Or have to use some other new Dll?

The error is CO_E_SERVER_EXEC_FAILURE. Most likely this happens if the security context of your app and Outlook are different. Is either app running with elevated privileges (Run As Administrator)?

Finally I found my answer. I tested and its working.
In start menu select Run
Type dcomcnfg and click OK
Component Services window is opened.
Expand the nodes Component Services -> MyComputer -> DCOM Config .
Right click on the application (Outlook Message Attachment) and select properties.
Click on Identity tab whatever necessary.
Click on “The interactive user" then OK
Found it here
Click Here

Related

The remote name could not be resolved: '*****.sharepoint.com' in O365 Online Sharepoint in Powershell

I am uploading files from a specific drive in the host computer to a Sharepoint Site, for this I have used Microsoft.SharePoint.Client.dll & Microsoft.SharePoint.Client.Runtime.dll. Most of the times my script works fine, but at times I get the error:
"Failed to connect to SharePoint Online site: 'https://XXX.sharepoint.com/sites/XXX'"
"Exception Type: System.Management.Automation.MethodInvocationException"
"Exception Message: Exception calling ""ExecuteQuery"" with ""0"" argument(s): ""The remote name could not be resolved: 'XXX.sharepoint.com'"""
Any ideas of what might be causing the error and how I could prevent the script from crashing again?
Thank you!
As most of the times, the script works.
I assuming that it could be some network issue in your side.
Did you use some proxy in you side and can you access the site url in browser directly ?
I suggest you can trace the request using Fiddler to see if there is some detailed error message when executing the script:
Fiddler

Task Scheduler - MS Access can't send email via MS Outlook

Recently we updated our systems to Office 2016. I have a scheduled task that reads information in an MS Access DB and then sends this information to a mail recipient via Outlook. All was fine until the upgrade.
The Scheduled task launches a .bat file which opens MS Access, calls a function, performs a task and then send the the information via email using outlook.
When I run the batch file manually by double clicking on it, it works as intended and sends the email. However, when I run through Task Scheduler it does not work. I know for certain that it opens the MS Access file and can read, but for some reason it fails to send the email. I have lowered all security setting to no avail.
The scheduled task runs with the highest privileges and all was fine before the upgrade.
Does anyone have any suggestions.
Outlook has security settings that will prevent an application from sending e-mail through it programmatically. It will use a popup dialog to ask for permission to send the e-mail. While I have successfully gotten rid of the popup and made Access send through Outlook while Outlook is open (both manually and as a scheduled task), it still fails when Outlook is not already open.
Your best bet, if you have the capability, is to leave Outlook open on the machine that runs the scheduled task. Otherwise you have to try to figure out what combination of policies and registry/outlook settings will make Outlook work the way you want it to.
Edit: My experience is with a windows domain/local exchange server environment.
We upgraded to Office 2016 a few weeks ago, and had been facing the same problem as you. Our batch file runs Access and triggers a macro that exports some data to a text file, and works fine when run manually. However, when run through Task Scheduler, everything seemed to run fine, but the text file was never updated. After trying for weeks with no success, I finally found the reason for the problem, and a solution.
In our case, the problem was that Access 2016 wants to be run as a foreground app. But when running as a Task Scheduler app (with the "run whether user is logged on or not" option checked), it views itself as a background app and therefore won't run. See Jim Dettman's answers here for a bit more on that: https://www.experts-exchange.com/questions/28988837/
Next, I found this post by Microsoft employee Blake Morrison where he discusses the changes in the latest version of Task Scheduler. One of his troubleshooting suggestions worked for us:
Try creating a new task, but select the Configure for: option to be
“Windows Server 2003, Windows XP, or Windows 2000” – this will create
an XP/2003 fashioned task
Unfortunately you probably have to do this as a new task - existing tasks don't seem to allow you to choose this option (it didn't show up in the dropdown menu for my existing task). So my settings for the new task are:
Running as an administrator account
"Run whether user is logged on or not" - checked
"Run with highest privileges" - checked
Configure For: Windows Server 2003, Windows XP, or Windows 2000
If I manually trigger the task, I see a command prompt open, then Access briefly opens and disappears (our macro has a Quit Access command at the end), and then the command prompt disappears. Output to our text file is written as expected. If I schedule it to run while I'm logged out of the machine, obviously I see nothing, but the text file is again written as expected, so I know it worked.

MSMQ won't enable on windows 7 machine

I'm trying to enable MSMQ on my development computer (running Windows 7).
I go to turn windows features on or off -> Microsoft Message Queue (MSMQ) Server Core -> Check MSMQ Active Directory Domain Services Integration AND MSMQ HTTP Support.
When I click OK, I get the error "An Error has occurred. Not all of the features were successfully changed." -> Click OK -> "You must restart your computer to apply these changes".
I've clicked Restart Now and Restart later and no matter what, same issue every time.
If I selected Restart later and go into Services...I see Message Queuing (stopped), and if I try to start the service, I get the error "Windows could not start the Message Queuing service on Local Computer. Error 0x80070005: Access denied."
I checked my privileges and I am an Admin on the machine. Just to be safe, I even logged into the machine as the actual Administrator. Same scenario.
Furthermore, when I go into the Event Viewer, I check the Application logs. I have an error with MSMQ as the Source. EventID: 2076, Error: The logger files cannot be initialized. The file QMLog in the Msmq\Storage folder is corrupted or absent. Error 0x80070005: Access denied.
If I check the System Logs, I see another error with the source being Service Control manager. Error eventId: 7023, Error: The Message Queuing service terminated with the following error: %%-2147024891
When I look up the error codes on Microsoft, there is NOTHING.
I had something like this - not sure how it came about as I always had AD integration turned ON for my MSMQ (as I needed it) but somewhere along the line, it got turned off and I couldn't turn it back on again via Control Panel - I would get the error behaviour (and restart!) that the OP describes. To fix it, I accessed my machine via the AD services manager app on one of our domain servers and deleted the "msmq" object that was under it.
I restarted my local MSMQ service on my machine AND rebooted (not sure which or both was required) and then when I checked my local registry entries, it indicated I was correctly running in AD mode once again. Everything started to work again after that.
This link was helpful in giving me the right direction to go in: Technet MSMQ delete stale objects article

"Source property was not set before writing to the event log."

One user of a Application is getting the Error "Source property was not set before writing to the event log." when the user uploads a file. Other users of the same application are not getting this Error when they upload a file. What could be the possible reasons?
If you are developing your application on Dotnet Framkework-
Are you creating a event Source as below in your code.
VBCode
EventLog.CreateEventSource("ApplicationError","MyApp")
Running the application as an administrator user fixed this issue for me. The user that was running the application did not have rights to write to the error log.

How to connect to outlook while its running in c#?

What I am trying to do is add an "Email To..." button to a winform client that opens a new outlook mail window and attaches a file so the user can forward it. I can get the outlook integration working just fine if outlook is not already running. This is a C# .NET 4.0 winforms app, using the Outlook 14.0 interop library, against Outlook 2010 32 bit running on windows 7 64 bit machine. I have the app already compiled to x86 for other reasons so I doubt its a 32/64 bit issue. Here is my code:
// Connect to outlook and create a new mail item
var app = new Outlook.Application();
var ns = app.GetNamespace("MAPI");
var mailItem = (Outlook.MailItem)ns.Application.CreateItem(Outlook.OlItemType.olMailItem);
// create the mail item and attach the file
mailItem.To = "";
mailItem.Subject = "Emailing: " + Path.GetFileName(_currentFilePath);
mailItem.Attachments.Add(_currentFilePath, Outlook.OlAttachmentType.olEmbeddeditem);
// show the email dialog window
mailItem.Display(true);
If outlook is not running, it works flawlessly. Once its open, I get the following error on the very first line where it tries to create the Outlook.Application object:
Retrieving the COM class factory for
component with CLSID
{0006F03A-0000-0000-C000-000000000046}
failed due to the following error:
80080005 Server execution failed
(Exception from HRESULT: 0x80080005
(CO_E_SERVER_EXEC_FAILURE)).
Any ideas what would cause this? Is this a version conflict of some sort?
This is due to privileges of the process. I usually run Visual studio as administrator, but if outlook is not previously started as also admin, the COM call will fail.
Simple solution. Run both as administrator or run both as normal privilege level.
I had the same problem. It is an security issue. When you run Outlook as administrator (Shift Right Click). The problem is no longer there. Disabling user account control setting might solve it.