我有一个ASP.net应用程序,在该应用程序中我对Server数据库进行查询。当查询结束时,我执行以下操作:
reader.Close();
reader.Dispose();
conn.Close();
conn.Dispose();
而且,当我继续使用SQL Server时,仍然需要:
SELECT
DB_NAME(dbid) as DBName,
COUNT(dbid) as NoOfConnections,
loginame as LoginName
FROM
sys.sysprocesses
WHERE
dbid > 0
GROUP
我第一次在ASP.net应用程序中使用实体框架4。我想确保数据库连接在离开using语句后关闭,但是,在SQL Server2005事件探查器中,我看不到离开using语句时的连接注销,只有输入它时的登录。
例如,我从一个空白的asp.net页面开始,在Page_Load中,我尝试了以下简单的代码(绝对没有页面中的其他代码):
using (var model = new DB("name=DB"))
{
var livre = (from l in model.books
select l).SingleOrDefault();
}
在分析器中,我看
我有一个托管在goDaddy上的asp.net应用程序,使用SQL server作为后端。我正在使用asp.net身份验证进行登录。我调用下面的代码来获取用户的属性。
UserManager manager = new UserManager();
var user = manager.FindById(User.Identity.GetUserId());
上面这行代码运行得非常慢。可能的原因是什么?
我使用过ASP.NET,现在我正在开发Sinatra/MongoDB应用程序。在ASP.NET架构中,给定请求使用的数据库连接来自ADO.NET管理的连接池。连接在请求之间的池中保持活动状态,因此建立和拆除连接的成本不会为每个http请求支付。
Sinatra MongoDB应用程序中是否有类似的机制,或者我是否需要对每个请求进行连接/断开连接?如果有一种机制,那么代码是什么样子的?
EDIT1:以下内容不起作用。浏览器发送的每个HTTP请求都会命中new.db行,包括对css、js、jpeg文件的请求。
require 'mongo'
include Mongo
db =
我正在编写一个ASP.NET web应用程序。数据库为Oracle。我最近注意到,如果我让应用程序打开一段时间而不执行任何操作,然后尝试访问数据库,我会收到"ORA-03135: connection lost contact“错误。我首先想到的一个原因是连接超时,但我创建了一个新的连接,打开它,做我需要做的事情,并在每次访问数据库时“最终”关闭它。更有趣的是,在我收到这个错误后,我在连接到数据库时不再有任何问题。你知道问题出在哪里吗?
我发现EF 4.0会在web服务器与远程sql服务器断开连接并重新连接后抛出异常“远程主机强制关闭现有连接”。例如,我编写了以下代码:
using (SparePartEntities aa = new SparePartEntities())
{
var bb = aa.TS_SYS_User.ToArray();
}
首先,我在网页中运行代码,结果是好的。
然后断开网络连接,然后重新连接。
当我刷新asp.net页面时,会抛出一个异常:“远程主机强制关闭了现有连接”。
我发现它在EF 1.0中是可以的?怎么了?
我有一个ASP.NET C# web应用程序,它有多个网页,每个页面都访问和Oracle数据库。我正在使用(OracleConnection con = new OracleConnection(conString))处理程序从每个网页中的c#访问甲骨文数据库。我希望在第一个网页中创建一个处理程序,并将其作为会话变量传递,以最小化打开的连接数。
我使用以下命令创建了一个会话变量:
Session.Add("OracleHandler",con);
我尝试使用以下方法访问不同网页中的会话变量:
OracleConnection con = (OracleConnection)(S
我的应用程序是基于asp.net (MVC)和mongodb的。
我正在跟踪每个客户端请求并将其写入我的mongodb数据库中。
目前,每个客户端请求都是打开新的DB连接。
这是我的密码:
public class MyController
{
public ActionResult MyOperation(string input)
{
const string connectionString = "mongodb://URL";
var client = new MongoClient(connectionString);
我开发一个应用程序已经有一段时间了。它以前的应用程序是用C++编写的,然后是在C#上编写的。
它在注册表中有用于前端的DBConnectionsFrontEnd条目,该条目位于asp.net和windows服务的DBConnectionsService上。我记得db有连接池,池有限制等等。但是当我开始思考的时候,我真的觉得我不知道确切的答案。它已经存在很长时间了,那些设计它的人已经考虑到了一些东西。Ran out of DB connections in log引起了我对这个问题的注意。我们增加了连接的数量,这解决了这个问题。
有没有人可以帮我弄清楚这方面的基础知识,或者给我一些资源,让我更好
我正在使用MSSQL Server的Asp.NET Web应用程序。在我的页面中,我打开一个连接,然后在页面末尾关闭它。但在Sql Analyzer中,Sql会话仍然存在,在一段时间后,我会发现连接池限制超出错误。仅当我关闭when服务器时,才会清除会话。
有人能解释一下如何解决这个问题吗?谢谢
这是我使用的代码:
Conn = new SqlConnection(StrConn);
Conn.Open();
.....
Conn.Close(); // In the debugger i can see connection state = closed
Conn = null;
我已经查过了。
我每次都在循环打开一个连接,我不确定ASP.NET是否会对性能造成影响,或者它是否会识别这些代码并自动优化它。我现在所拥有的:
For i As Integer = 0 To 100
cmd = New SqlCommand("UPDATE <table> where id=@id", myConnection)
cmd.Parameters.Add(New SqlParameter("@id", i))
Try
myConnection.Open()
cmd.ExecuteNo
运行在另一台服务器上的我的asp.net web应用程序的相同副本不时抛出此错误:
超时过期了。从池获得连接之前经过的超时时间。这可能是因为所有池连接都在使用中,并且达到了最大池大小。
此错误发生在以下行67上
Line 65:
Line 66: //determine if the user's username/password are valid
Line 67: if (Membership.ValidateUser(userName, password))
Line 68: {
Line 69: use
我想我做错了什么。在我开始之前,先介绍一下背景。
我们公司使用一个名为GeneXus的工具:它是一种代码生成器工具,已经使用了多年。它生成C#代码,这样我们就可以构建自己的程序集并使其与该工具一起工作。我们的应用程序处理大量的SOAP调用,它还很好地利用了Redis。实际上,Redis是整个代码基础结构的主要部分。
为了使它与Genexus一起工作,我们必须在ServiceStack.Redis库周围创建一个包装类,以便它可以在我们的GeneXus代码中使用。这就是我们在GeneXus中使用它的方式:
//First we check if Redis is working at all. I