【问题标题】:Handling Timeouts In A Website SQLCommand Object and c#在网站 SQLCommand 对象和 c# 中处理超时
【发布时间】:2010-05-14 23:43:12
【问题描述】:

我正在使用 Visual Studio 2008 和 sql server 2005,在正常使用下一切正常。但是,如果用户在页面上停留了几分钟而没有任何活动,然后在偶尔单击按钮时,该站点会引发以下异常...

过程或函数“sp_name”参数“@SomeParameterName”,未提供

我在调试应用程序时也在 Visual Studio 中遇到此错误,换句话说,从 Visual Studio 运行该站点,然后在 VS 中对 html 进行一些更改,保存更改并刷新页面。

错误不一致,也不是页面必须保持空闲才能发生的时间......

当前sql命令对象超时30秒,网站超时30分钟。

有其他人经历过这种情况吗?解决方法是什么,因为在网站超时发生之前我不会超出范围...

我们将不胜感激。

【问题讨论】:

    标签: c# asp.net sql sql-server-2005


    【解决方案1】:

    您似乎正在将存储在用户会话中的值 (SomeParameterName) 传递给过程 sp_name。当用户处于非活动状态的时间足够长时,他的会话就会过期,因此您会丢失存储的值,并且您最终会在 SomeParameterName 上传递 null

    【讨论】:

    • 感谢您的回复...在某些情况下,您是的,在其他情况下您是正确的,它是在 url 作为参数中传递的 guid,然后存储在 hdn 字段中...单击按钮时我得到了值并将其发送过来......你知道处理这个问题的最佳方法是什么,然后将它们踢回登录页面?
    • 客户端上的字段不会过期,所以对我来说,客户端的 null 是没有意义的。在隐藏字段上存储值是老派的东西 :-) 你可以使用 ViewState
    • 我混合使用两者。我附上了一个除了任何一个都没有什么独特之处。我不明白。 public MySession() { } public static MySession Current { get { MySession session = (MySession)HttpContext.Current.Session["MySession"]; if (session == null) { session = new MySession(); HttpContext.Current.Session["MySession"] = 会话; } 返回会话; } }
    猜你喜欢
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2018-08-21
    • 1970-01-01
    • 2017-07-02
    • 2011-09-12
    • 2017-10-29
    相关资源
    最近更新 更多