问题标签 [sqlconnection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4265 浏览

sql-server - 在 web 服务中处理 sql 连接的最佳方法是什么?

我有一个最多由 10 个客户端调用的 Web 服务。该网络服务由 7 个不同的 asmx 页面组成,每个页面有大约 100-200 个功能。

所有这些函数都针对 MSSQL2005 或 MS SQL2000 数据库工作。一天中的某些时段,来自客户端的流量很大,似乎我在 sql-server 上的连接用完了,导致所有客户端停止。

在每个函数中,我打开一个连接,做一些事情然后关闭连接,有时有事务,有时没有。

在服务器上,我看到它创建了很多连接,我不知道为什么它们不会消失,但即使在功能完成后仍然存在。所以我可以确定我的 10 个客户不时创建超过 80 个连接。有时它们中的一些会消失,有时它们在使用数小时后仍然存在。那里有某种池化吗?

问题 1:是否有另一种方法来处理我应该使用的连接,例如每个 Web 服务全局连接或任何其他方式?

问题 2:如果可以处理每个函数的连接,那么为什么它不关闭服务器上的连接,使打开的连接列表一直越来越大,直到我摆脱连接错误?

这个问题与我的另一个问题有关,但不一样:奇怪的 SQL2005 问题。“SqlConnection 不支持并行事务”

我现在将其范围缩小到“失去连接”错误。

0 投票
3 回答
17039 浏览

entity-framework - 如何将 ADO.net 实体框架与现有的 SqlConnection 一起使用?

  1. 我有一个使用 SqlConnection 的现有 asp.net 网站。
  2. 我添加了 ADO.net 实体框架。
  3. 我已成功连接到数据库并创建了 .edmx 文件。
  4. 我能够通过实体框架使用自动生成的连接字符串进行连接。

我想使用我在整个站点中用于实体框架连接的现有 SqlConnection 对象。
我不想为要使用 ADO.net Entity Framework 的一个页面使用第二个数据库连接,也不想更改整个站点以使用新的 Entity Framework 连接字符串。

感谢您的任何帮助,您可以提供。

0 投票
2 回答
844 浏览

sqlconnection - SQLConnection 池 - 处理 InvalidOperationExceptions

我正在设计一个高度并发的 CCR 应用程序,在该应用程序中,我必须不阻塞或发送睡眠线程。

我遇到了 SQLConnection 池问题 - 特别是在尝试调用 SqlConnection.Open 时得到 InvalidOperationExceptions

我可能会重试一手牌,但这并不能真正解决问题。

对我来说,理想的解决方案是定期重新检查连接的可用性,而不需要绑定线程

有任何想法吗?

[更新] 这是另一个论坛上发布的相关问题/解决方案

该解决方案需要手动管理的连接池。我宁愿有一个更动态的解决方案,即在需要时启动

0 投票
6 回答
3343 浏览

c# - 识别SqlConnection对象的底层sql连接

我可以使用 GetHashCode() 来识别对象,但是有什么方法可以识别 SqlConnection 对象获得的实际 sql 连接?

我(仍在)尝试调试涉及池连接和应用程序角色的问题,如果我能够可靠地识别底层 sql 连接,它会很有帮助。

这是一些可能说明问题的代码

当我写这个问题时,我突然想到我可能想要的是连接的 SPID。可悲的是,由于我试图解决的错误,当 SQL 删除连接时,SPID 不可用(所以在我最感兴趣的时候,我无法在该连接上运行命令来获取 SPID) .

还有什么好主意吗?

0 投票
9 回答
2359 浏览

database - 一次或在每个数据库操作上打开数据库连接?

我目前使用 ASP.NET 创建一个 webportal,它严重依赖于数据库的使用。基本上,来自任何用户的每个(以及几乎每个 :P )GET 查询都会导致来自网络服务器的对数据库的查询。

现在,我在这方面真的很陌生,而且我非常关心性能。由于我缺乏这方面的经验,我真的不知道会发生什么。

我的问题是,使用 ADO.NET,只保留一个从 Web 服务器到数据库的静态连接,然后在每次查询数据库之前检查此连接服务器端的完整性是否是一个更明智的选择?- 或者,在每次查询之前打开连接然后关闭它会更好吗?

在我看来,第一个选项会更好,因为您可以在每次查询之前节省时间握手等,并且您可以节省数据库和服务器端的内存,因为您只有一个连接,但是这种方法有什么缺点吗?2 个查询是否可能同时发送可能会破坏彼此的完整性或混合返回的数据集?

我已经尝试在这里和网络上到处搜索以找到一些关于此的最佳实践,但没有运气。我得到的最接近的是:长时间保持数据库连接打开是否安全,但这似乎更适合您拥有多个数据库用户的分布式系统,而我只有我的网络服务器..

0 投票
1 回答
1163 浏览

c# - Linq 到 SQL 连接

我正在为一个相当复杂的站点使用 Linq to SQL,并且在上线后,我们遇到了许多数据库超时。我注意到的第一件事是与数据库有相当多的连接。

来自 ADO.net 背景,我们曾经对其进行编码,以便任何站点只使用一个或两个池连接,这导致即使有相当少的并发用户也可以获得可接受的性能。

所以我的问题是,这种旧的做法是有缺陷的,还是有办法做到 LINQ?似乎我们的性能问题是由与数据库的大量连接引起的,但如果这是一个问题,我会认为它会在所有 LINQ 教程中提到。

有什么建议么?

0 投票
5 回答
1410 浏览

c# - 如何强制 SQLconnection 释放数据库?

我编写了一个小应用程序,可以恢复数据库(C# 和 SQL2005),但是在我访问数据库后,我无法删除它 - 它说它正在使用中。我想这与SQLconnection-pooling,但我可以强制它释放数据库吗?

0 投票
4 回答
988 浏览

.net - 诊断 SqlConnection 泄漏?

我遇到了一个 Web 应用程序的问题,该应用程序耗尽了连接池中的所有可用连接。我似乎记得一些用于诊断所有活动连接的好工具,但我画的是空白。诊断此问题有哪些好的选择?

0 投票
4 回答
1059 浏览

asp.net - 如何让 ASPNET 被 SQL Server 2005 识别为可信连接

这是情况。我正在开发一个新网站来访问旧数据库。这是 DoD 安装,因此周围有很多安全措施。

当前的应用程序是用经典的 ASP、VBScript 和一些 javascript 编写的。新系统是 ASP.NET。

在旧系统中访问数据库意味着使用您自己的凭据(域名\用户名)访问服务器。现在我正在尝试测试我所做的一些早期开发。当我使用 Cassini(在 VS2008 下)时,我可以毫无困难地访问数据库,因为 ourdomain\myusername 在 SQL Server 实例中注册为受信任的连接。由于我必须编写安全方面的内容,Cassini 不能再用作测试服务器 - 我必须使用 IIS(我们这里有安全读卡器)。卡西尼无法处理它们。

因此,当我解决了将适当帐户添加到本地 PC 上的管理员以便我可以在使用 IIS 时在 VS2008 中进行调试的所有问题时,我尝试连接到数据库并被拒绝,因为 MYPC\ASPNET 不是受信任的联系。

改变现有的数据库是不可能的。用于访问数据库的硬编码用户名和密码是不可能的。

我问 DBA 是否可以将 MYPC\ASPNET 添加到域组中,以便 SQL Server 可以将其视为可信连接(因为 MYDOMAIN\MYNAME 位于被视为可信连接的组中)。他告诉我这在技术上是不可能的。

最终会有三四台机器(我的、另一位开发人员、最终的实时 Web 服务器和未来的测试 Web 服务器)的 ASPNET 帐户将访问我们的两台 SQL 服务器(实时和测试)。

我必须做些什么才能使现有的 SQL 服务器将我视为朋友而不是敌人?我查看了模拟,但我得到的印象是它与我们的系统不兼容 - 业务规则调用一个通用例程来创建一个 SqlConnection 对象并打开它(甚至可能是一个 SqlTransaction 对象与之一起使用)并且使用了这个对象其余的业务规则和数据访问层,直到完成。一旦打开 SqlConnection (并通过 ByRef 返回调用例程),模拟似乎不会持续存在

提前感谢您的任何建议。

0 投票
3 回答
12116 浏览

asp.net - 不允许更改“ConnectionString”属性。连接的当前状态为打开

stackoverflow 的第一次用户,但我在 Coding Horror 上关注了它的发展。

我对上述错误感到非常头疼。我安装了 ELMAH 和 Google Analytics,随着网站流量的增加,我看到这个错误的次数也增加了。

我已尽我所能遵循 Microsoft 原则: http: //msdn.microsoft.com/en-us/library/ms971481.aspx在整个开发过程中,我已经根据多种建议来源尽可能优化了我的代码网络。

我在公共课上有我的 SqlConnection;

在我的主要应用程序页面中,我的做法与此大致相同:

我一直在使用这种方法,而且大部分时间效果都很好,但是现在网站变得异常繁忙,戏剧已经开始了!有没有人有任何想法?

我宁愿不必重新编写大量代码,但我愿意接受建议。

:)

克里斯