【问题标题】:Close sql connections in asp.net关闭asp.net中的sql连接
【发布时间】:2015-06-02 06:42:35
【问题描述】:

我正在使用带有 sql server 连接的 asp.net(c#)。此应用程序一次可供 30 位用户使用。

下面是我的应用程序的连接字符串:

<add name="AOS" connectionString="Data Source=SANDIP-PC\R2;Initial Catalog=DB_20150322;User ID=sa;Password = lambda; Connect Timeout=100; Pooling=False;" providerName="System.Data.SqlClient"/>

我的应用程序使用上述连接字符串运行良好,但有时发生异常时,如果连接未关闭,并且在此期间有任何新请求出现,则会显示以下错误消息:

“无法打开登录请求的数据库“DB_20150322”。登录失败。

用户 'sa SqlException (0x80131904)' 登录失败。"

我没有此应用程序的源代码。 我该如何解决这个问题? 发生此类异常时如何全局关闭数据库连接? 除了我的思考过程之外还有什么其他的问题吗?

我有这个想法,因为每次打开同一个页面都没有任何错误,但有时当第一次使用相同的条件加载同一个页面时,页面不会加载。

出现这种异常时如何全局关闭连接?

我需要更改连接字符串中的任何内容吗?

【问题讨论】:

    标签: asp.net sql-server-2008


    【解决方案1】:

    不是连接关闭问题,而是显示登录失败错误 因为 Web.Config 文件中使用了身份验证模式。

    使用 Windows 身份验证来模拟服务帐户,您必须在 IIS 和 ASP.NET 中设置 Windows 身份验证。

    设置在Web.Config文件中:

    <system.web>
        <authentication mode="Windows"/>
     </system.web>
    

    编辑2: 如果它真的因为连接问题而发生,那么你可以 打开或关闭任何连接时检查连接状态,例如

    if(con.State == ConnectionState.Open)
    {
    con.Close();
    }
    

    if(con.State == ConnectionState.Close)
    {
    con.Open();
    }
    

    【讨论】:

    • 对不起,我不确定你的意思。它已经在 web.config 身份验证模式="windows"。你能详细说明一下吗?
    • 错误The login failed. Login failed for user 'sa SqlException (0x80131904,见stackoverflow.com/questions/22415319/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    相关资源
    最近更新 更多