1不是受支持的代码页

时间:2018-04-23 20:27:48

标签: c# asp.net .net iis

我们在日志中看到此异常:“1不是受支持的代码页”。它在站点上随机出现,并且随机出现,但总是在2个位置中的1个位置:读取上载文件的字节流,或者将字节流写入响应。该错误很难重现,修复方法是回收有问题的IIS节点。

文件上传&下载工作几乎一直在工作,所以代码确实有效。我们没有做任何不好的事情,比如分离后台线程进行这样的处理,但我们正在使用的各种库可能是。

一些例子:

来自C#框架代码:

  

消息:无法将索引0处的字节[C0]从指定代码页转换为Unicode。 StackTrace:at   System.Text.DecoderExceptionFallbackBuffer.Throw(Byte [] bytesUnknown,Int32 index)at at   System.Text.DecoderExceptionFallbackBuffer.Fallback(Byte [] bytesUnknown,Int32 index)at at   System.Text.DecoderFallbackBuffer.InternalFallback(Byte [] bytes,Byte * pBytes,Char *& chars)at   System.Text.UTF8Encoding.GetChars(Byte * bytes,Int32 byteCount,Char * chars,Int32 charCount,DecoderNLS baseDecoder)at at   System.Text.UTF8Encoding.GetChars(Byte [] bytes,Int32 byteIndex,Int32 byteCount,Char [] chars,Int32 charIndex)在System.Xml.ValueHandle.TryReadChars(Char [] chars,Int32 offset,Int32 count,Int32& actual ) 在   System.Xml.XmlBaseReader.ReadValueChunk(Char [] chars,Int32 offset,Int32 count)at   System.Xml.XmlBinaryWriter.WriteTextNode(XmlDictionaryReader reader,Boolean属性)at   System.Xml.XmlDictionaryWriter.WriteNode(XmlDictionaryReader reader,Boolean defattr)at at   System.ServiceModel.Channels.ReceivedMessage.OnWriteBodyContents(XmlDictionaryWriter writer)at at   System.ServiceModel.Channels.Message.OnWriteMessage(XmlDictionaryWriter writer)at at   System.ServiceModel.Channels.Message.OnCreateBufferedCopy(Int32 maxBufferSize,XmlDictionaryReaderQuotas配额)at at   System.ServiceModel.Channels.Message.CreateBufferedCopy(Int32 maxBufferSize)at at   {source redacted}中的Daptiv.Api.WcfRest.ServiceModel.Extensions.XmlPropertySorterMessageInspector.AfterReceiveRequest(消息和请求,IClientChannel通道,InstanceContext instanceContext)   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.AfterReceiveRequestCore(MessageRpc& rpc)at at   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage2(MessageRpc& rpc)at at   System.ServiceModel.Dispatcher.ImmutableDispatchRuntime.ProcessMessage11(MessageRpc& rpc)at at   System.ServiceModel.Dispatcher.MessageRpc.Process(Boolean isOperationContextSet)源:mscorlib TargetSite:Void Throw(Byte [],Int32)HelpLink:{NULL}索引:0 ParamName:{NULL} HResult:-2147024809 BytesUnknown:[Byte [] ]:hashcode {3297007} {192}数据:[ListDictionaryInternal]:hashcode {44361946} {} InnerException:{NULL}}

来自Aspose.Tasks:

  

消息:1不是受支持的代码页。参数名称:代码页StackTrace:在System.Text.Encoding.GetEncoding(Int32代码页)的?。?。?()at?。?.. ctor(Stream stream)at?。?。?(stream?)at ?. B。?()在Aspose.Cells.Workbook.?(Stream?,LoadOptions?)Aspose.Cells.Workbook。?(String?,LoadOptions?)at

1 个答案:

答案 0 :(得分:0)

感谢您花时间检查一下。我们继续挖掘,发现错误输出的页面和使用Aspose.Cells程序集的页面之间存在很强的相关性。我们相信升级这个程序集将解决问题,因为我们使用的那个已经很老了。

因此,对于将来查看此问题的任何人:检查并确保所有第三方程序集都是合理的最新版本。除非另有证据,否则任何超过几年的事情都应被视为可疑。