Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';无法访问公用文件夹根目录_C#_.net_Exchangewebservices_Ews Managed Api_Exchange Server 2010 - Fatal编程技术网

C# Can';无法访问公用文件夹根目录

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

我最近用C#编写了一个.NET控制台应用程序。它的目的是读取特定文件夹中的电子邮件,分析它们的特定值,并将它们保存到数据库中

我最初编写此代码时,我们的电子邮件系统是Exchange2003。但是,我知道我们很快就会升级到Exchange2010:因此,我构建的代码可以在这两种环境中工作

然而,在迁移到Exchange 2010之后,该应用程序已经崩溃

该应用程序使用EWS API for 2010功能。当它试图使用ExchangeService的FindFolders方法来查找publicfoldersroot时,会引发异常。代码如下:

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(引发异常:“发生内部服务器错误。操作失败。”)

  • 为自己授予对公用文件夹的最高级别权限(无效)

  • 手动设置我的凭据(无效)

我可以在Outlook 2007中查看公用文件夹;publicfoldersroot属性在intellisense中可用;该代码适用于本地文件夹(我可以解析我的收件箱)

我目前的想法是,这是Exchange 2010最近设置的一个设置:不幸的是,这不是我真正的领域。异常告诉我它正在尝试使用以前版本的Exchange。将其设置为2007只会导致代码失败并出现内部服务器错误

您试过了吗。版本=

更改此行:

ExchangeService service = new ExchangeService(); 
对这样的事情:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);


取决于你的版本。

以前的帖子,但这对我来说是答案:

实际上,用于连接EWS的帐户在邮箱数据库中有一个邮箱,其默认公用文件夹服务器仍然是Exchange 2003。通过EWS枚举公用文件夹的所有尝试均失败。把它换成2010年的后端服务器可以立即修复它

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);