Exchange Web Service (EWS) call fails under ASP.NET but not a console application

Posted by Vince Panuccio on Stack Overflow See other posts from Stack Overflow or by Vince Panuccio
Published on 2012-12-10T09:13:08Z Indexed on 2012/12/12 17:04 UTC
Read the original article Hit count: 2350

Filed under:
|
|
|

I'm getting an error when I attempt to connect to Exchange Web Services via ASP.NET.

The following code works if I call it via a console application but the very same code fails when executed on a ASP.NET web forms page. Just as a side note, I am using my own credentials throughout this entire code sample.

"When making a request as an account that does not have a mailbox, you must specify the mailbox primary SMTP address for any distinguished folder Ids."

I thought I might be able to fix the issue by specifying an impersonated user.

exchangeservice.ImpersonatedUserId = 
    new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "[email protected]");

But then I get a different error.

"The account does not have permission to impersonate the requested user."

The App Pool that the web application is running under is also my own account (same as the console application) so I have no idea what might be causing this issue.

I am using .NET framework 3.5.

Here is the code in full.

var exchangeservice =
                        new ExchangeService(ExchangeVersion.Exchange2010_SP1)
                        {
                            Timeout = 10000
                        };

 var credentials = new System.Net.NetworkCredential("username", "pass", "domain");


exchangeservice.AutodiscoverUrl("[email protected]")

FolderId rootFolderId = new FolderId(WellKnownFolderName.Inbox);

var folderView = new FolderView(100)
            {
                Traversal = FolderTraversal.Shallow
            };

            FindFoldersResults findFoldersResults =
                service.FindFolders(rootFolderId, folderView);

© Stack Overflow or respective owner

Related posts about c#

Related posts about exchange