c# - 从 ASMX 调用静态方法的陷阱

标签 c# asp.net .net static asmx

我想知道从 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/

相关文章:

asp.net - 在 SignalR 2.0 中使用现有的 IoC 容器

c# - 如何使用多个 select 语句填充结构

c# - RegEx 模式仅在第二次交替时匹配

c# - 按 id 从 mongodb 2.4 版的子文档中删除

jquery - 无法在浏览器中手动访问 ASMX Web 服务,但可以使用 jQuery

c# - 如何在 asp.net 核心 web api(无第 3 方)中实现 JWT 刷新 token ?

C# BinaryReader.ReadChar 读取 NetworkStream 时抛出 "System.ArgumentException: The output char buffer is too small"

.net - 为要连接的 Windows Phone 7 应用程序构建服务的最佳可扩展架构是什么?

c# - 当属性不能为 null 时使用什么异常类型?

.net - C++ 与 C++/CLI : Const qualification of virtual function parameters