Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.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# Exchange Web服务-请求失败。远程服务器返回错误:(413)请求实体太大_C#_Exchangewebservices_Exchange Server 2016 - Fatal编程技术网

C# Exchange Web服务-请求失败。远程服务器返回错误:(413)请求实体太大

C# Exchange Web服务-请求失败。远程服务器返回错误:(413)请求实体太大,c#,exchangewebservices,exchange-server-2016,C#,Exchangewebservices,Exchange Server 2016,我有一个简单的代码片段,我尝试从特定邮箱获取文件夹 ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; ExchangeService service = new ExchangeService(); service.Credentials = new WebCredentials("ADMIN_USER@corp

我有一个简单的代码片段,我尝试从特定邮箱获取文件夹

ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;

ExchangeService service = new ExchangeService();

service.Credentials = new WebCredentials("ADMIN_USER@corp.contoso.com", "********");

Mailbox mb = new Mailbox("chris@corp.contoso.com");
FolderId fid = new FolderId(WellKnownFolderName.MsgFolderRoot, mb); 

// Set the URL.
service.Url = new Uri("https://<exchange>/EWS/Exchange.asmx");

var findResults = service.FindFolders(
    fid,
    new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep }
);

foreach(var result in findResults)
{
    //result.Load();
    Console.WriteLine(result.DisplayName);
}
ServicePointManager.ServerCertificateValidationCallback=(发送方、证书、链、sslPolicyErrors)=>true;
ExchangeService服务=新的ExchangeService();
service.Credentials=新的WebCredentials(“管理员_USER@corp.contoso.com", "********");
邮箱mb=新邮箱(“chris@corp.contoso.com");
FolderId fid=新的FolderId(WellKnownFolderName.MsgFolderRoot,mb);
//设置URL。
service.Url=新的Uri(“https:///EWS/Exchange.asmx");
var findResults=service.FindFolders(
fid,
新建FolderView(int.MaxValue){Traversal=FolderTraversal.Deep}
);
foreach(findResults中的var结果)
{
//result.Load();
Console.WriteLine(result.DisplayName);
}
它以前工作正常,但今天早上它开始返回此错误

Microsoft.Exchange.WebServices.Data.ServiceRequestException:请求失败。远程服务器返回错误:(413)请求实体太大。-->System.Net.WebException:远程服务器返回错误:(413)请求实体太大


我尝试了不同的方法来解决这个问题——主要是通过增加请求实体的大小限制,但没有帮助。我想代码还可以,但VM或Exchange配置需要调整。请建议如何解决,谢谢。

你不应该这样做

new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep }
它无论如何都不会工作,因为EWS返回的最大项目数无论如何都是1000,因此您应该在代码中实现适当的分页,否则当邮件文件夹计数超过1000时,您的代码将失败


在您调整任何服务器设置之前,我建议您使用诸如EWS编辑器之类的工具测试EWS,如果这样做有效,但您的代码无效,那么您就知道问题出在源位置,而不是目标位置。在很少的情况下,您应该为这种类型的请求更改Exchange服务器上的IIS设置—这是不必要的(可能我只能考虑大型附件)。因此,我将查看该服务器上最近可能安装了哪些其他设备。

您不应该这样做

new FolderView(int.MaxValue) { Traversal = FolderTraversal.Deep }
它无论如何都不会工作,因为EWS返回的最大项目数无论如何都是1000,因此您应该在代码中实现适当的分页,否则当邮件文件夹计数超过1000时,您的代码将失败


在您调整任何服务器设置之前,我建议您使用诸如EWS编辑器之类的工具测试EWS,如果这样做有效,但您的代码无效,那么您就知道问题出在源位置,而不是目标位置。在很少的情况下,您应该为这种类型的请求更改Exchange服务器上的IIS设置—这是不必要的(可能我只能考虑大型附件)。因此,我将查看该服务器上最近可能安装了哪些其他设备。

在我的示例Exchange 2013 CU12中,我调整了IIS的SSL设置,并得到了用户的积极响应

在默认网站的EWS子文件夹下,我将“SSL设置”项“客户端证书”从“接受”更改为“忽略”


在我的例子Exchange 2013 CU12中,我调整了IIS的SSL设置,并得到了用户的积极响应

在默认网站的EWS子文件夹下,我将“SSL设置”项“客户端证书”从“接受”更改为“忽略”


感谢您的快速响应,@Glen。我试图在
FolderView
中使用不同的值,但即使是
newfolderviev(1)
也返回413错误。我也试过你们推荐的EWS编辑器——同样的错误,甚至同样的调用堆栈。请看截图。除了Exchange 2016,VM上没有安装任何东西。“我已将其调整为使用远程powershell-这就是我所做的全部工作。感谢您的快速响应,@Glen。”。我试图在
FolderView
中使用不同的值,但即使是
newfolderviev(1)
也返回413错误。我也试过你们推荐的EWS编辑器——同样的错误,甚至同样的调用堆栈。请看截图。除了Exchange 2016,VM上没有安装任何东西。我已将其调整为使用远程powershell—这就是我所做的全部工作。