C# “获取内部异常”;此xml文档交换中禁止dtd“;在阅读outlook的电子邮件时

C# “获取内部异常”;此xml文档交换中禁止dtd“;在阅读outlook的电子邮件时,c#,windows-services,exchangewebservices,C#,Windows Services,Exchangewebservices,获取错误“从服务接收的响应不包含有效的XML”。错误为 读取时出现内部异常“此xml文档交换中禁止dtd” 来自outlook的电子邮件(不是在阅读每封邮件时)。 有人能告诉我可能是什么问题吗。下面是我所在的代码 获取错误 FindItemsResults<Item> RetrievedItems=null ; RetrievedItems = service.FindItems(FIds, new ItemView(4)); String[] SignatureList = Co

获取错误“从服务接收的响应不包含有效的XML”。错误为 读取时出现内部异常“此xml文档交换中禁止dtd” 来自outlook的电子邮件(不是在阅读每封邮件时)。 有人能告诉我可能是什么问题吗。下面是我所在的代码 获取错误

FindItemsResults<Item> RetrievedItems=null ;

RetrievedItems = service.FindItems(FIds, new ItemView(4));
String[] SignatureList = ConfigurationManager.AppSettings.Get("SignatureTypes").Split(',');



if (RetrievedItems != null && RetrievedItems.Count() > 0)
{

 RetrievedItems.ToList().ForEach(x =>
                    {
                        try
                        {
List<String> Attachments = new List<String>();
List<String> ScanFileName = new List<String>();

 bool IsAvailable = true;

//Getting error while Load() - below line of code                         
                            ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).Load();

Vo.EmailMessage msg = new Vo.EmailMessage();
                            msg.MessageId = ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).Id.UniqueId;
                            msg.From = ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).From.Address;
                            ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).ToRecipients.ToList().ForEach(z => msg.To += z.Address + ",");
                            ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).ReplyTo.ToList().ForEach(y => msg.ReplyToEmailAddress += y.Address + ",");
                            msg.Subject = ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).Subject;
                            msg.Body = ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).Body.Text;
                            msg.Dated = ((Microsoft.Exchange.WebServices.Data.EmailMessage)x).DateTimeSent;
FindItemsResults RetrievedItems=null;
RetrievedItems=service.FindItems(FIds,新项目视图(4));
String[]SignatureList=ConfigurationManager.AppSettings.Get(“SignatureType”).Split(',');
if(RetrievedItems!=null&&RetrievedItems.Count()>0)
{
RetrievedItems.ToList().ForEach(x=>
{
尝试
{
列表附件=新列表();
List ScanFileName=新列表();
bool IsAvailable=true;
//加载()时出错-代码行下方
((Microsoft.Exchange.WebServices.Data.EmailMessage)x).Load();
Vo.EmailMessage msg=新建Vo.EmailMessage();
msg.MessageId=((Microsoft.Exchange.WebServices.Data.EmailMessage)x).Id.UniqueId;
msg.From=((Microsoft.Exchange.WebServices.Data.EmailMessage)x).From.Address;
((Microsoft.Exchange.WebServices.Data.EmailMessage)x).ToRecipients.ToList().ForEach(z=>msg.To+=z.Address+“,”);
((Microsoft.Exchange.WebServices.Data.EmailMessage)x).ReplyTo.ToList().ForEach(y=>msg.ReplyToEmailAddress+=y.Address+“,”);
msg.Subject=((Microsoft.Exchange.WebServices.Data.EmailMessage)x);
msg.Body=((Microsoft.Exchange.WebServices.Data.EmailMessage)x).Body.Text;
msg.Dated=((Microsoft.Exchange.WebServices.Data.EmailMessage)x).DateTimeSent;

我也看到了这个错误。我发现,即使在1秒后拨打完全相同的电话,也能正常工作。我与Microsoft合作过,他们的“感觉”是一个中间设备[在我的例子中是F5]正在Exchange服务器获取有效负载之前修改有效负载。我知道如果我们完全绕过F5,问题就会消失。

您看到这个问题了吗?看起来类似: