这是我的错误详细信息。
[2022-12-08T15:26:46.1761002Z] Unexpected end of file.
at System.Xml.EncodingStreamWrapper.ReadBOMEncoding(Boolean notOutOfBand)
at System.Xml.EncodingStreamWrapper..ctor(Stream stream, Encoding encoding)
at System.Xml.XmlUTF8TextReader.SetInput(Stream stream, Encoding encoding, XmlDictionaryReaderQuotas quotas, OnXmlDictionaryReaderClose onClose)
at System.Runtime.Serialization.XmlObjectSerializer.ReadObject(Stream stream)
at DMS.BusinessLogic.ApiHelper.Deserialize(String xml, Type toType) in d:\InmarsatSourceCode\CRMA-DMS\DMSSourceCode\Sources\DMS.BusinessLogic\DMS.BusinessLogic\APIHelper.cs:line 299
给我错误的跟踪代码如下
public object Deserialize(string xml, Type toType)
{
using (Stream stream = new MemoryStream())
{
byte[] data = System.Text.Encoding.UTF8.GetBytes(xml);
stream.Write(data, 0, data.Length);
stream.Position = 0;
DataContractSerializer deserializer = new DataContractSerializer(toType);
return deserializer.ReadObject(stream);
}
}
我想知道为什么相同的代码在开发服务器上工作得很好,而我的本地代码连接到生产服务器。但如果我们登录到产品服务器,一切都会变得混乱。请提出建议。
我们已尝试重新启动生产服务器。尝试分析数据。但无济于事。
最新发现是服务器返回错误 500,对于每一个 500 服务器错误,我都会在 UI 中收到上述消息。我正在从 Visual Studio 连接同一台服务器,并且得到了成功的响应。这和IIS有什么关系吗?但本地 IIS 和生产 IIS 均已启动并正在运行。我已经重新评估了应用程序池。是否有其他 IIS 或服务器依赖项需要验证?
检查您尝试反序列化的 XML 的编码以及 EOL(行尾)字符。据我所知,错误发生在
System.Xml.EncodingStreamWrapper.ReadBOMEncoding
。所以我相信它与UTF中的BOM(字节顺序标记)有关。
Thejasvi,你的问题终于解决了吗? 我也面临着同样的问题。