【问题标题】:SQL Server Exception:Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not respondingSQL Server 异常:超时已过期。操作完成前超时时间已过或服务器无响应
【发布时间】:2012-10-06 03:25:48
【问题描述】:

我在 asp.net 中创建了一个登录页面,并在 asp.net 成员中创建了一个用户和角色,登录后我在我的页面加载方法中有一个查询来检查用户的角色并将页面视图显示为每个用户,但我收到此错误。

超时。在完成之前超时时间已过 操作或服务器没有响应。

我的代码:

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.User.Identity.IsAuthenticated)
    {

        if (Roles.IsUserInRole("Manager"))
        {

            NavigationMenu.Visible = false;
            NavigateMenu1.Visible = true;

                creategrid();
        }
    }
}

此异常仅在我第一次运行我的应用程序时发生,并且当我刷新页面尝试再次登录时,没有异常。请帮助我,因为我是新手。

【问题讨论】:

  • 您能否尝试调试您的代码并找出哪个命令引发了异常?似乎某些查询的运行时间超过了应有的时间。我建议从 Global.asax 文件中的 Application_Start() 方法开始。

标签: c# asp.net sql-server


【解决方案1】:

错误消息试图说明,建立连接所花费的时间比默认超时时间长..

虽然你可以增加超时时间,但我建议你不要这样做..

找出它发生的原因..如果它经常发生,那么可能是您的连接池当时可能没有足够的连接..如果是这样,您可以增加最小池大小或最大池大小并具有合理的连接终身等,

http://msdn.microsoft.com/en-us/library/8xx3tyca(v=vs.71).aspx

【讨论】:

    【解决方案2】:

    在命令对象中设置commandTmeout属性。

    cmd.CommandTimeout = 9000;

    【讨论】:

      【解决方案3】:

      添加SqlCommand 的超时时间。请添加时间在second

      // Setting command timeout to 1 second
       cmd.CommandTimeout = 1;
      

      【讨论】:

        猜你喜欢
        • 2012-07-24
        相关资源
        最近更新 更多