C# Can';无法访问公用文件夹根目录
我最近用C#编写了一个.NET控制台应用程序。它的目的是读取特定文件夹中的电子邮件,分析它们的特定值,并将它们保存到数据库中 我最初编写此代码时,我们的电子邮件系统是Exchange2003。但是,我知道我们很快就会升级到Exchange2010:因此,我构建的代码可以在这两种环境中工作 然而,在迁移到Exchange 2010之后,该应用程序已经崩溃 该应用程序使用EWS API for 2010功能。当它试图使用ExchangeService的FindFolders方法来查找publicfoldersroot时,会引发异常。代码如下:C# Can';无法访问公用文件夹根目录,c#,.net,exchangewebservices,ews-managed-api,exchange-server-2010,C#,.net,Exchangewebservices,Ews Managed Api,Exchange Server 2010,我最近用C#编写了一个.NET控制台应用程序。它的目的是读取特定文件夹中的电子邮件,分析它们的特定值,并将它们保存到数据库中 我最初编写此代码时,我们的电子邮件系统是Exchange2003。但是,我知道我们很快就会升级到Exchange2010:因此,我构建的代码可以在这两种环境中工作 然而,在迁移到Exchange 2010之后,该应用程序已经崩溃 该应用程序使用EWS API for 2010功能。当它试图使用ExchangeService的FindFolders方法来查找publicfo
ExchangeService service = new ExchangeService();
FindFoldersResults findRootFldrs;
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("xxxxx@xxxx.xxx", delegate(string x) {
return true; });
FolderView fview = new FolderView(100);
fview.Traversal = FolderTraversal.Deep;
findRootFldrs = service.FindFolders(WellKnownFolderName.PublicFoldersRoot,
fview);
例外情况:ErrorInvalidSchemaVersionForMailboxVersion
,又名:
请求的邮箱不支持指定的RequestServerVersion
我试图:
- 将exchangeservice设置为2007(引发异常:“发生内部服务器错误。操作失败。”)
- 为自己授予对公用文件夹的最高级别权限(无效)
- 手动设置我的凭据(无效)
ExchangeService service = new ExchangeService();
对这样的事情:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
或
取决于你的版本。以前的帖子,但这对我来说是答案: 实际上,用于连接EWS的帐户在邮箱数据库中有一个邮箱,其默认公用文件夹服务器仍然是Exchange 2003。通过EWS枚举公用文件夹的所有尝试均失败。把它换成2010年的后端服务器可以立即修复它
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);