连接数据库时的奇怪问题。

smartcoffee 2007-06-09 05:46:09
使用asp.net开发网站,使用的sql server数据库,平时程序都正常,但是运行一段时间后,会出现SQL Server 不存在或访问被拒绝。也可能出现,
超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小.
这样的错误,检查程序开连接后都有写关闭,并释放资源。
数据库连接探测也没问题。
虽然这个问题每天会出现几次,但是总觉得不爽。希望有碰到过兄弟讨论一下。
...全文
892 29 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
greenery 2007-06-11
  • 打赏
  • 举报
回复
问一下,当连不上数据库时,
telnet dbserver 1433看是否能连通,如果超时,我觉得时表示网络问题。有可能那一小段时间,网络真的断开了。
还有,日志是否有记录了什么可疑的信息吗?
打开管理工具的“性能”,对sql进行监控。
LoveCherry 2007-06-11
  • 打赏
  • 举报
回复
性能监视器看下SQL连接的情况,结合IIS流量分析
smartcoffee 2007-06-11
  • 打赏
  • 举报
回复
......
Jinglecat 2007-06-10
  • 打赏
  • 举报
回复
压力测试~
smartcoffee 2007-06-10
  • 打赏
  • 举报
回复
Server 不存在或访问被拒绝这个问题频繁出现,连接池满只是偶尔有非常少。就奇怪数据库一般都没问题,为什么会出现Server 不存在或访问被拒绝。
li45214521 2007-06-10
  • 打赏
  • 举报
回复
SqlConnection con=null;
try
{
using(con=new SqlConnection (连接串))
{
访问数据库
}
}
catch
{
}
finally
{
if (con!=null)
{
con.Close();
con.Dispose();
}
}
---------------------
conn.Close()只是关闭连接
并没有释放资源
con.Dispose()才是释放资源
---------------------------------
还有 你用户数同时超过你有最大连接数,会不会出现错误呢
洋溢2020 2007-06-10
  • 打赏
  • 举报
回复
路过
洋溢2020 2007-06-09
  • 打赏
  • 举报
回复
up
smartcoffee 2007-06-09
  • 打赏
  • 举报
回复
amandag(高歌) ,我的程序用的都是using开连接,逼得没办法,我又在finally中关了一次,没有一点效果,希望在以后我能找点问题所在,着实郁闷
amandag 2007-06-09
  • 打赏
  • 举报
回复
同意 sp1234(asp.net不是一个语言,是一个操作系统)
cinray 2007-06-09
  • 打赏
  • 举报
回复
UPup`
smartcoffee 2007-06-09
  • 打赏
  • 举报
回复
应该是最标准的写法了。
smartcoffee 2007-06-09
  • 打赏
  • 举报
回复
外网出现问题后,我还怕是有写错了,搜了全部开连接的地方。换成如下方式

SqlConnection con=null;
try
{
using(con=new SqlConnection (连接串))
{
访问数据库
}
}
catch
{
}
finally
{
if (con!=null)
{
con.Close();
}
}
smartcoffee 2007-06-09
  • 打赏
  • 举报
回复
数据库连接使用两种方式关闭。
一种是
try
{
}
catch
{
}
finally
{
关连接
}

还用了using(开连接){}

我全部用的标准方式。
  • 打赏
  • 举报
回复
连接肯定都有开闭.出现问题时我第一反应可能没有半闭连接,但是查了所有数据层代码,全部都有关。并且连接池满的情况出现不多。
——————————————————————————————————————————
往往,逻辑东西根本不能用眼睛简单遍历代码。就好像你看得懂一本小说的每一个字但是未必能够理解小说的深意,你认为你的代码都有些了关闭,但是你未必模拟了执行时的全部流程。

最好的办法是用结构来彻底免去猜测流程分析的复杂责任。如果我去查,我会搜索整个解决方案中关于“关闭连接”的代码,如果发现了,就说明程序写错了。因为只应该使用using(){}结构来关闭,而不应该写代码关闭。
smartcoffee 2007-06-09
  • 打赏
  • 举报
回复
用的sql server企业版。服务器是托管在电信机房。操作系统和数据库补丁都打过。
redebug 2007-06-09
  • 打赏
  • 举报
回复
楼主用sqlerver express 做系统的可能性不大
一起等待高人的回复吧

说实话 如果是对数据库有高端的要求
我对sql server的信心不足
gcaling2006 2007-06-09
  • 打赏
  • 举报
回复
从网络上及软件设计上考虑,先排除网络原因,然后再一个个排除。
lnwuyaowei 2007-06-09
  • 打赏
  • 举报
回复
如果是用sqlerver express,那么这种情况一定会出现,因为那个数据库服务在一段时间内没有访问,就会自已停,再次访问时会打开,但是如果打开时速度慢,就可能会出现这种情况.解决方法可以到sqlserver版查一下.
smartcoffee 2007-06-09
  • 打赏
  • 举报
回复
呵呵,系统运行一切正常 ,不过出现问题得解决不是,把MSDN上的文章都看了,只有是有人提到的问题点都仔细检查过一次,优化或者SQL的组装方式,连接上的注意点都梳理了一遍,实在是找不到问题点了。确实郁闷。
加载更多回复(8)

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧