SessionState过期文件不存在c#

时间:2014-04-16 18:09:21

标签: c# .net session-state

我有一个使用网络表单的网页,并使用sessionstate cookieless。由于它是cookieless会话被放入网址。当用户复制并粘贴我们的网址并在sessionstate到期后尝试访问其网页时,会出现此问题。我没有.net重新创建会话或重定向到新会话,而是收到以下错误:文件(s(13vd3ucbiprwc0b2m5d3gfvu))/ page.aspx'不存在。

正如您所看到的,看起来iis正在寻找实际文件,而不是意识到网址中有会话。我看到了以下文章http://msdn.microsoft.com/en-us/library/aa479314.aspx,并检查了iis是否有正确的aspnet_filter.dll,并且它们已正确列出。

这就是我在web配置中调用会话状态的方法,请注意我出于安全目的删除了数据库连接:

sessionState mode="SQLServer" timeout="60" cookieless="true" regenerateExpiredSessionId="true"

请注意,这只是一个页面,用户会话是在page_init上创建的。

1 个答案:

答案 0 :(得分:0)

我找到了这个问题,并希望为遇到同样问题的其他人解答这个问题。我的网址中的会话看起来像(S(13vd3ucbiprwc0b2m5d3gfvu)),但是用户却是如何得到这个,(s(13vd3ucbiprwc0b2m5d3gfvu))。如果您注意到唯一的区别是S在普通链接中是大写的,而有问题的链接是小写的。有两个简单的修复,在全局我刚刚编写了一些代码,它将使用大写的S再次重定向到页面。您还可以使用iis重写工具在会话中查找小写s并重写为大写

相关问题