gpt4 book ai didi

asp.net - 自定义 ILogicalThreadAffinitive 类对象在回发时为空

转载 作者:行者123 更新时间:2023-12-01 22:55:16 25 4
gpt4 key购买 nike

一位前雇员实现了一个自定义的 VB.Net Context 类,该类继承了 DictionaryBase 并实现了 ILogicalThreadAffinitive。类对象在具有 .NET 4 Framework 的 ASP.NET Web 应用程序中的整个用户 session 期间维护诸如用户 ID、语言、位置等值。

<Serializable()> _
Public NotInheritable Class Context
Inherits DictionaryBase
Implements ILogicalThreadAffinative

... Class Methods ...

End Class

对象类似乎工作正常,在页面之间导航时按预期保存值,即使在加载弹出页面时也是如此。每当我有 PostBack 操作时,我的问题就会出现。发生这种情况时,对象变为空并导致空引用错误。

奇怪的是,它适用于除我之外的所有人。它安装在我们客户端的系统上,在我们的测试环境中运行,并为我们项目的其他开发人员工作,但有一些东西阻止它在我的开发环境中工作,该环境使用本地 IIS 7.0 Web 服务器托管应用程序。另一位开发人员和我已经交叉检查了我们将更改的所有本地 IIS 设置、VS2010 设置和 Internet 选项,但两台机器之间的一切似乎都相同(都是 Win7 x64,在 x86 模式下构建应用程序) .毋庸置疑,这个问题对于开发和故障排除问题已经变得非常令人望而却步。

对于可能会产生此类行为的其他检查,是否有任何建议?

编辑 :经过一些更高级的挖掘后,似乎 PostBack 导致在第二个线程上触发请求。尽管文档似乎是这样说的,但第二个线程并没有继承 CallContext 中的值。在我同事的工作环境中,这个请求是在同一个线程上处理的。这似乎是问题的主要症状,但我们仍然无法查明根源。另外,也许值得注意的是:我的机器有一个 SSD,而另一个开发人员没有。我不知道这是否会影响线程,但我认为它不会产生这些结果。

最佳答案

我对解决方案并不是特别满意,但通过切换到 ASP.NET v4 经典应用程序池,我能够无错误地运行程序。如前所述,我同事的机器在集成应用程序池中运行程序很好。但是,在我的机器上,这会导致线程问题。

因此,这本身并不是一个令人满意的“答案”;但我有一个解决方案。

关于asp.net - 自定义 ILogicalThreadAffinitive 类对象在回发时为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14648915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com