当我尝试通过 ASP.NET 连接到 Exchange Web 服务时出现错误。
如果我通过控制台应用程序调用以下代码,但在 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);