【问题标题】:ASP.NET 2.0 Session terminating unexpectedlyASP.NET 2.0 会话意外终止
【发布时间】:2014-05-22 13:07:00
【问题描述】:

我们有一个 ASP.NET 20 Web 应用程序,突然间我们开始遇到奇怪的会话超时,这会将用户从系统中踢出。 系统还调用使用成员身份验证的 WCF 以及我们收到此错误的所有其他调用:

无法处理该消息。这很可能是因为操作“http://tempuri.org/MyWCFService”不正确,或者因为消息包含无效或过期的安全上下文令牌,或者因为绑定之间存在不匹配。如果服务因不活动而中止通道,则安全上下文令牌将无效。为防止服务过早中止空闲会话,请增加服务端点绑定的接收超时。

没有对应用程序执行任何代码更改,我不知道可能是什么原因或如何跟踪此问题,任何有关这些问题的帮助都将意义重大。

【问题讨论】:

    标签: c# asp.net wcf session iis


    【解决方案1】:

    您使用的是哪种会话状态?如果是 InProc,则可能是 IIS 应用程序池正在回收,这会清除会话并可能是您的问题的潜在原因。

    您还应该检查 Session_Start 或 Session_End 事件中是否有任何可能导致任何问题的事件,如果有,请考虑在此处添加错误处理和/或日志记录。

    【讨论】:

    • 你觉得改成State Server会解决问题吗?奇怪的是,该应用程序在过去 2 年中一直运行良好,而我们没有进行任何部署或更改。
    • @Veco 这可能是我会尝试的,但是在这样做时你需要小心,就好像你在会话中存储任何自定义对象一样,它们需要被标记为可序列化,否则你会得到一个错误。问题也可能与 WCF 服务有关,而 ASP.NET 应用程序的会话实际上并不是问题。
    【解决方案2】:

    尝试改变

    <security mode="None">
    

    <security mode="Message">
    

    在配置文件中

    【讨论】:

    • 安全性无法更改,因为它是生产公共站点。另外,您能否解释一下为什么 asp.net 站点会话也会受此影响?
    猜你喜欢
    • 2013-12-16
    • 2013-08-29
    • 2011-07-16
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多