【发布时间】:2019-10-27 21:41:13
【问题描述】:
有趣的是,在 ASP.NET Web 应用程序上开发模块时,我一直在 ViewState 中存储一些缓存的对象数据,有些定义明确,有些则没有(即:将它们声明为 dynamic 并将它们初始化为 @ 987654322@)。
这在我的 Windows 10 IIS 10 开发盒的开发过程中运行良好,但是一旦我将它推送到带有 IIS 10(运行 .NET 4.5、4.6、4.7 或 4.8)的 Windows Server Core 2016 中,它就不起作用了,我明白了System.ArgumentException: Error serializing value 'System.Dynamic.ExpandoObject' of type 'System.Dynamic.ExpandoObject.' ---> System.Runtime.Serialization.SerializationException: Type 'System.Dynamic.ExpandoObject' in Assembly 'System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' is not marked as serializable. 错误。
我想知道什么可以在本地环境而不是在服务器端进行这项工作,因为ExpandoObject 本身不能序列化,所以想知道我的本地环境如何将这些对象存储在视图状态中并恢复它们好吗?
编辑:实际上,我添加到视图状态的所有其他对象也没有标记为可序列化,现在开始在服务器上出现问题。考虑到添加到视图状态的对象都不是可序列化的,这怎么可能在本地工作?
【问题讨论】:
标签: asp.net .net expandoobject