gpt4 book ai didi

session - 如何防止 ashx 重置 session 超时?

转载 作者:行者123 更新时间:2023-12-04 07:04:23 26 4
gpt4 key购买 nike

我无法找到有关此的任何信息,这让我觉得我做错了什么。我制作了一个 ashx,它为我们的登录用户提供安全图像。问题是 Sql Profiler 跟踪显示在我们的 session 状态数据库中为通过此机制提供的每个图像调用了 TempResetTimeout。构建这个 ashx 是为了替换一个曾经做同样事情但由于许多图像和网络花园的使用导致许多 session 状态数据库死锁的 aspx,yada,yada。这绝对是一种改进,因为对 session 状态数据库的“已提交读”调用减少了,但有更新的事实意味着我们仍然会遇到一些死锁。基本上,我们完全不希望使用这个 ashx 进行 session 交互,但这似乎并没有发生。

我当然没有实现 IRequiresSessionState 接口(interface),所以我被引导相信我的 ashx 不应该以任何方式接触 Session。但是,我看到 Global.asax 每次出现都会命中,并且 Global.asax 在其某些代码中引用了 session 。这导致我尝试通过 web.config 中的以下内容从任何类型的身份验证中排除此特定页面...

<location path="ImageHandler.ashx">
<system.web>
<authentication mode="None" />
</system.web>
</location>

...但这会导致 ashx 根本不触发(不显示图像并且在 ProcessRequest 中没有断点命中)。我不确定为什么会这样。

如何让我的 ashx ImageHandler 完全不触摸 session ?

最佳答案

SessionState 是在应用程序级别上设置的,因此禁用 的 session 的唯一方法|任意 ASP.NET 请求是将其放入 IIS 中自己的应用程序中,并关闭 session 状态。

<system.web>
<sessionState mode="Off" />
</system.web>

http://msdn.microsoft.com/en-us/library/h6bb9cz9.aspx

您还可以创建自己的 session 状态模块(也许尝试包装现有的),但这也需要 IIS 配置才能将另一个文件夹设置为应用程序,或者在根应用程序上替换它。

http://msdn.microsoft.com/en-us/library/system.web.sessionstate.sessionstatemodule.aspx

尽管这似乎比仅仅为在 IIS 中配置为应用程序的一个子文件夹关闭它要付出更多的努力。

关于session - 如何防止 ashx 重置 session 超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1348463/

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