当我尝试通过ASP.NET连接Exchange Web Services时,出现了错误。
如果我在控制台应用程序中调用以下代码,则代码有效,但是在执行ASP.NET Web表单页面时,相同的代码失败。值得一提的是,我在整个代码示例中都使用了自己的凭据。
“当作为没有邮箱的帐户发出请求时,您必须为任何专用文件夹ID指定邮箱主SMTP地址。”
我认为通过指定模拟用户可以解决此问题。
exchangeservice.ImpersonatedUserId =
new ImpersonatedUserId(ConnectingIdType.SmtpAddress, "email@domain.com");
但是我得到了一个不同的错误。
"该帐户没有权限模拟请求的用户。"
Web应用程序正在运行的应用程序池也是我的帐户(与控制台应用程序相同),因此我不知道可能会导致这个问题。
我正在使用.NET框架3.5。
以下是完整的代码。
var exchangeservice =
new ExchangeService(ExchangeVersion.Exchange2010_SP1)
{
Timeout = 10000
};
var credentials = new System.Net.NetworkCredential("username", "pass", "domain");
exchangeservice.AutodiscoverUrl("email@domain.com")
FolderId rootFolderId = new FolderId(WellKnownFolderName.Inbox);
var folderView = new FolderView(100)
{
Traversal = FolderTraversal.Shallow
};
FindFoldersResults findFoldersResults =
service.FindFolders(rootFolderId, folderView);