以下是我的错误详细信息。
[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或服务器依赖项?
1条答案
按热度按时间kpbwa7wx1#
检查要反序列化的XML的编码,以及EOL(行结束)字符。据我所知,错误发生在
System.Xml.EncodingStreamWrapper.ReadBOMEncoding
中。所以我相信它与UTF中的BOM(字节顺序标记)有关。