我想知道从 ASP.NET Web 服务调用静态方法是否有任何缺陷。
internal static object SelectScalar(String commandText, DataBaseEnum dataBase)
{
SqlConnection sqlc = new SqlConnection(AuthDbConnection.GetDatabaseConnectionString());
object returnval=null;
if (sqlc!=null)
{
SqlCommand sqlcmd = sqlc.CreateCommand();
sqlcmd.CommandText = commandText;
sqlc.Open();
returnval = sqlcmd.ExecuteScalar();
}
return returnval;
}
举个例子上面的方法;多个 Web 方法和多个客户端同时调用此方法(例如,1000 次调用调用此函数的 Web 方法)是否存在任何缺陷?
最佳答案
由于您正在创建一个新的 SqlConnection
,因此您想要处置它,否则连接将不会关闭。参见 MSDN获取使用指南。
虽然它是一个静态方法……但这似乎不是问题,因为您没有更新任何共享状态(全局变量)。
编辑:据我所知,网络服务中静态方法的“陷阱”与任何其他应用程序中的一样。唯一需要注意的是,Web 服务是一种预期可以长期可靠运行的服务器。因此,随着时间的推移可能导致问题的事情(内存泄漏、数据库连接耗尽等)比其他运行时间短得多的应用程序更为重要。
关于c# - 从 ASMX 调用静态方法的陷阱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1319192/