我得到了文件的意外结束.只发生在prod服务器上.在开发服务器上运行良好



以下是我的错误详细信息。

[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:InmarsatSourceCodeCRMA-DMSDMSSourceCodeSourcesDMS.BusinessLogicDMS.BusinessLogicAPIHelper.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);
}
}

我想知道为什么相同的代码在开发服务器和我的本地代码连接到prod服务器上完全正常工作。但如果我们登录到服务器,一切都乱了。请建议。

我们已经尝试重新启动生产服务器。试着分析数据。

最新的发现是服务器返回错误500,每500个服务器错误,我在UI中得到上述消息。我从visual studio连接相同的服务器,我得到了成功的响应。这与IIS有关吗?但是本地IIS和生产IIS都已启动并运行。我已经重新启动了相同的应用程序池。还有其他IIS或服务器依赖项需要验证吗?

检查要反序列化的XML的编码和EOL(行结束)字符。从我看到的,错误发生在System.Xml.EncodingStreamWrapper.ReadBOMEncoding。所以我相信这与UTF中的BOM(字节顺序标记)有关。

相关内容

最新更新