C# + asp.Net + 自定义 Sybase SessionState 提供程序 + ReportViewer = 一些报告崩溃

Posted

技术标签:

【中文标题】C# + asp.Net + 自定义 Sybase SessionState 提供程序 + ReportViewer = 一些报告崩溃【英文标题】:C# + asp.Net + Custom Sybase SessionState provider + ReportViewer = some reports crash 【发布时间】:2009-04-02 21:24:28 【问题描述】:

我正在使用自定义会话状态提供程序将会话数据存储在 Sybase 数据库中。

它运行良好,但报表查看器控件中的某些报表始终导致以下崩溃。

System.Web.HttpException:会话状态信息无效并且可能已损坏。 生成时间:2009 年 4 月 2 日星期四 20:21:47 GMT

System.Web.HttpException:会话状态信息无效并且可能已损坏。 在 System.Web.SessionState.SessionStateItemCollection.Deserialize(BinaryReader 阅读器) 在 JCDCHelper.Providers.JCDCSybaseSessionProvider.SybaseCustomSessionData.Deserialize(HttpContext 上下文,字符串 serializedItems,Int32 超时) 在 JCDCHelper.Providers.JCDCSybaseSessionProvider.SybaseCustomSessionData.GetSessionStoreItem(布尔 lockRecord,HttpContext 上下文,字符串 id,Boolean& 锁定,TimeSpan& lockAge,Object& lockId,SessionStateActions& actionFlags) 在 JCDCHelper.Providers.JCDCSybaseSessionProvider.SybaseCustomSessionData.GetItemExclusive(HttpContext 上下文、字符串 id、Boolean& 锁定、TimeSpan& lockAge、Object& lockId、SessionStateActions& actionFlags) 在 System.Web.SessionState.SessionStateModule.GetSessionStateItem() 在 System.Web.SessionState.SessionStateModule.BeginAcquireState(对象源,EventArgs e,AsyncCallback cb,对象 extraData) 在 System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

我已经尝试阻止 null keyNames,但没有任何乐趣。

我已经尝试手动序列化包含报告数据的实体对象,它们可以很好地序列化和反序列化。

我的内存没有用完,相同的报告会崩溃,并且无论我的内存负载如何,相同的报告都不会崩溃。

我已经用谷歌搜索了所有我能想到的东西,但我一头雾水。

其他一切都按预期工作,序列化和反序列化都很好。

有人有什么想法或提示吗?

谢谢

卡拉丁-

【问题讨论】:

【参考方案1】:

我们放弃了这一点,并在水晶报告中重新编写了报告,并且 手动构建 PDF。 (不使用 CrystalReportsViewer)和它 工作。

希望对某人有所帮助。

【讨论】:

以上是关于C# + asp.Net + 自定义 Sybase SessionState 提供程序 + ReportViewer = 一些报告崩溃的主要内容,如果未能解决你的问题,请参考以下文章

在asp.net的自定义类(C#)中怎样把变量输出到页面?

ASP.NET C# 中的自定义控件

如何在 Asp.NET Core WEB API 中使用 .Net (C#) 在 Payload 中创建具有自定义 JSON 声明的 JWT 令牌

ASP.NET C#中怎么让 httpcontext.current.user.identity.name 获取为自定义的值

c# ASP.NET怎么判断客户端中的软件进程是不是运行?

c#语言asp.net实现treeview控件读数据库动态生成树的代码