.net 我收到意外的文件结尾。仅发生在生产服务器上。在开发服务器上运行正常

7fyelxc5  于 2022-12-14  发布在  .NET
关注(0)|答案(1)|浏览(160)

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

[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或服务器依赖项?

kpbwa7wx

kpbwa7wx1#

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

相关问题