gpt4 book ai didi

tridion - 什么编程惯例导致Tridion报告在另一个线程上使用了 session ?

转载 作者:行者123 更新时间:2023-12-04 04:57:43 25 4
gpt4 key购买 nike

在Tridion内容管理服务器上检查事件日志时,(我使用的是2009版)我看到警告:

Session is used on another thread... than it was created on ... 
Session objects are not thread safe.

哪种编程/模板制作实践可能会导致这种情况?

编辑:到目前为止,我们已经提出了一些好的建议:
  • 不要将 session 对象存储在静态变量(Chris)中
  • 不要将引擎或程序包存储在静态变量(Miguel)中。

  • 实际上,这两个都是纯金,因此您应该检查自己的代码以了解这些反模式。 (引擎具有对 session 的引用,因此很有意义。)不过,我已经搜索了引起问题的代码库,但没有找到任何这些。所以-还有人有其他想法吗?我也欢迎您提出有关如何调试此类内容或缩小问题代码范围的建议。

    最佳答案

    该问题不仅在存储 session 时发生,而且在存储任何TOM.NET对象(ComponentPage等)时也会发生。每个此类对象都有对 session 的内部引用,该 session 是通过对对象的任何访问而创建的,可能必须返回到 session 以从Tridion检索所请求的信息。

    尽管大多数与项目类型“本地”的属性似乎都已检索并保留在实例上,但是像LoadApplicationData这样的调用可能(必须)返回到Session来访问请求的数据。如果此调用随后发生在其他线程上,您将收到提及的警告消息。

    我开始怀疑地查看每个TOM.NET对象,并预加载了很多数据,以后当我第一次从其Session中加载该对象时,可能会需要这些数据。

    关于tridion - 什么编程惯例导致Tridion报告在另一个线程上使用了 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10212794/

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