如何在 IIS 中监视 .NET MySQL 数据连接器的连接池

2023-12-28

我已经在谷歌上搜索了相当多的信息,但无法找到确切的答案。我们在日志中看到以下错误:

超时已过。获取之前已过了超时时间 来自池的连接。发生这种情况的原因可能是所有 连接正在使用中并且已达到最大池大小。堆栈跟踪:位于 MySql.Data.MySqlClient.MySqlPool.GetConnection() 在 MySql.Data.MySqlClient.MySqlConnection.Open()

我可以监视 MySQL 服务器上的客户端连接(它们看起来很好),但错误发生在 ASP 应用程序中。我的代码中没有任何明显的内容,因此我想监视连接池并查看发生了什么。 我想将 MySQL 性能计数器添加到 Windows 的性能监视器中。但我看到的唯一 MySQL 计数器是 HardProcedureQueries 和 SoftProcedureQueries。 SQL Server 和 Oracle 具有与连接池和其他相关项目相关的负载。 不同论坛上有一些未答复的文章询问同样的事情。

那么,人们如何在 Windows 上的 IIS 中监视 ASP .NET MySQl 连接池计数器呢?

我们在 Windows Server 2008 上的 IIS 7.5 上使用 .NET 4


我做了两件事来帮助解决这个问题。

  • 升级了 MySQL 驱动程序。
  • 使用的代码来自如何查询MySQL .Net连接器连接池当前大小? https://stackoverflow.com/questions/14963556/how-to-query-the-current-size-of-the-mysqls-net-connectors-connection-pool创建一个网页来监视我的服务器上连接池的状态。

我使用的完整代码是:

string path = u.MapPath("~/bin/MySql.Data.dll");
Assembly ms = Assembly.LoadFrom(path);
Type type = ms.GetType("MySql.Data.MySqlClient.MySqlPoolManager");
MethodInfo mi = type.GetMethod("GetPool", BindingFlags.Static | BindingFlags.Public);

var pool = mi.Invoke(null, new object[] { new MySqlConnectionStringBuilder(ConnectionString) });
Type mip = ms.GetType("MySql.Data.MySqlClient.MySqlPool");
MemberInfo[] mei1 = mip.GetMember("inUsePool", BindingFlags.NonPublic);
totalAvailable = (int)pool.GetType().InvokeMember("available", BindingFlags.GetField | System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, null, pool, new object[] { });
var o = pool.GetType().InvokeMember("inUsePool", BindingFlags.GetField | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, pool, new object[] { });
var o1 = pool.GetType().InvokeMember("idlePool", BindingFlags.GetField | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance, null, pool, new object[] { });
inUseCount = (int)o.GetType().InvokeMember("Count", BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public, null, o, null);
idleCount = (int)o1.GetType().InvokeMember("Count", BindingFlags.GetProperty | BindingFlags.Instance | BindingFlags.Public, null, o1, null);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 IIS 中监视 .NET MySQL 数据连接器的连接池 的相关文章

  • 如何在 Web 表单中进行 Html.Encode

    我有一个 ASP NET Web 窗体应用程序 有一个带有文本框的页面 用户在其中输入搜索词用于查询数据库 我知道我需要防止 JavaScript 注入攻击 我该怎么做呢 在 MVC 中我会使用Html Encode Web 表单中似乎无法
  • MySQL 使用 ALTER IGNORE TABLE 出现重复错误

    我的 MySQL 中有一个有重复项的表 我尝试删除重复项并保留一项 我没有主键 我可以通过以下方式找到重复项 select user id server id count as NumDuplicates from user server
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • MySQL MIN/MAX 所有行

    我有桌子Races与行ID Name and TotalCP 我选择分钟 TotalCP FROM Races 但是我想选择具有最小值的整行 我如何在单个查询中做到这一点 从聚合值获取整行的一般形式是 SELECT FROM Races W
  • 有没有办法使用 ASP.NET 在用户离开页面时始终运行某些服务器端代码?

    我想知道当用户离开 ASP NET 中的页面时是否有任何方法可以始终运行一些服务器端代码 页面卸载事件不好 因为如果有人单击链接 则不会调用该事件 理想情况下 即使用户关闭浏览器 我也希望代码能够运行 我怀疑我所问的问题是不可能的 但问一下
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使
  • MySQL连接字符集问题

    我在 Mac 上使用带有 MySQL 的 velosurf 没有任何编码问题 但是当我切换到 Linux 计算机时 从 velosurf 获得的值未正确编码 我发现这可能是默认连接字符集的问题 在 Mac 上我得到 mysql gt sho
  • Mysql 将 int 转换为 MAC

    我有一些数据可以转换 其中有 2 列 其中一列有 IP 它包含整数值 我在 mysql 查询中使用了以下函数 是否有一个函数可以用来转换我的 mac 列 其中包含整数和数据类型是bigint to MAC地址 SELECT INET NTO
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • ASP .NET 按钮事件处理程序不会在第一次单击时触发,而是在回发后第二次单击时触发

    背景 我正在自定义现有的 ASP NET C 应用程序 它有自己的小 框架 和约定 供开发人员在扩展 定制其功能时遵循 我目前正在扩展它的一些管理功能 该框架提供了一个合同来强制执行GetAdministrationInterface 方法
  • SELECT 语句会受到 SQL 注入攻击吗?

    实际上有2个问题 我知道我必须尽可能多地使用存储过程 但我想知道以下内容 A 我可以从 SELECT 语句 例如 Select from MyTable 获得 SQL 注入攻击吗 B 另外 当我在 ASP NET 中使用 SQLDataSo
  • GeneratePasswordResetTokenAsync 和GenerateUserTokenAsync 的默认TokenLifespan 是多少

    我到处都找过 但似乎无法确定每个选项的默认值是什么 我还需要知道是否有办法为每个设置不同的寿命 谢谢 对于任何令牌来说 默认值显然都是 24 小时 您可以将其设置为不同的值 但相同的值将同等地应用于所有令牌 GenerateEmailCon
  • INSERT..RETURNING 在 JOOQ 中不起作用

    我有一个 MariaDB 数据库 我正在尝试在表中插入一行users 它有一个生成的id我想在插入后得到它 我见过this http www jooq org doc 3 8 manual sql building sql statemen
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • Asp.net MVC 路由 - 防止通过约束路由到 XML 文件

    我正在尝试找到一种方法来阻止用户访问特定的 xml 文件 我尝试过做 routes MapRoute SiteMap SiteMap siteMap xml new new isLocal new LocalHostRouteConstra
  • 映射 mysql 中同一个表的多个值

    您好 我必须使用另一个表中的值 id 获取文本值 表 1 包含值 ID 表 2 包含名称和值 ID 表 1 SEVERITY OCCURENCE DETECTABILITY 2 3 4 表 2 id name value 1 Very Hi
  • 不可勾选的单选按钮与专有的复选框

    从 UI 角度来看 是拥有一组具有取消选中功能的单选按钮更好 还是拥有一组独占的复选框 意味着一次只能选中一个 更好 Update 我没想到对此会有如此负面的反应 如果我给出一个更接近其使用方式的示例 也许会有所帮助 我有一个充满数据绑定内
  • 服务器不支持 C# 中的安全连接

    我在下面的代码中收到错误 服务器不支持安全连接 SmtpClient smtp new SmtpClient MailMessage mail new MailMessage mail From new MailAddress gmail

随机推荐

  • 静态生成的 Next.js 页面中的动态 HTML lang 属性

    我正在 Next Js 项目中开发多语言静态登录页面 我的目标是具有以下结构 gt 英文主页 de gt 德语主页 it gt 意大利语主页 我按以下方式构建它 页面 index js export default function Hom
  • Messenger 机器人无法响应

    My bot has been approved and is available publicly see image but it does not respond to anyone besides the developer 我把它
  • 编译器的这个响应有效吗?

    以下代码会引发错误 我在参考文献中找不到这方面的任何信息 运算符右侧缺少空格是一个错误 let names Anna Alex Brian Jack 此语法的任何其他组合都可以编译 有人知道根据我们现在对 Swift 的了解这是否真的是无效
  • 如何使用 astyle 在 C++ 方法中格式化左大括号?

    将函数的左大括号移动到下一行是一种常见的做法 如何使用astyle 代码美化器 在类方法中应用它 example this is an initial C code class Class public static int foo boo
  • 基于iOS的OpenGL ES编程

    我需要找到学习 iPhone 版 openGL ES 的资源 我已经看过 Brad Larson 的精彩视频 现在正在从苹果下载高级视频 我对 iOS 编程了解很多 但对 OpenGL 一无所知 因此资源不假设我已经了解 openGL 我想
  • 我可以将 moq 的 InSequence() 与 MockBehavior.Loose 一起使用吗?

    我试图执行后续调用验证 我发现 moq 支持 InSequence 方法 例如 MockSequence s new MockSequence validator InSequence s Setup m gt m IsValid It I
  • 如何在shiny中触发数据刷新?

    我有一个闪亮的应用程序 它将数据从 SQL 查询到数据帧中 然后从我的闪亮服务器 块中引用这些数据帧 到目前为止 我只在 RStudio 中运行它 因此每当我需要新数据时 我只需重新启动应用程序 然后在服务器加载之前它将获取所有新数据 我想
  • TIFFReadDirectory 使用 QPixmap::load( ) 读取 GeoTiff 时出现警告

    我有一个 geotiff 文件 我正在使用 QPixmap load 将其加载到 QPixmap 中 我多次在控制台上打印以下警告 但是 直接使用 libtiff 打开它不会出现警告 关于如何减轻 QT 中这些难看的警告有什么想法吗 TIF
  • Web应用程序在azure中出现http 404错误,但在本地运行

    我正在尝试创建一个连接到我的 Azure SQL 数据库并从数据中读取的 Web api 我使用了 VS19 中的 API 模板并添加了我自己的文件 我在本地运行了该应用程序 模板天气预报工作正常 并且我使用邮递员测试了我的 API 然后
  • CRAN 关于全局变量使用的政策

    在CRAN存储库策略文档中 明确指出 包不应修改全局环境 用户的工作空间 当我跑步时 R CMD check via devtools check 它只是声明 全局变量 x 没有可见的绑定 作为注释而不是警告 CRAN 不会接受用户提供的包
  • Visual Studio 容器工具要求在构建、调试或运行容器化项目之前运行 Docker

    我正在研究 Net core 微服务 我安装了包含 docker cli 和 kitematics 的 Docker Toolbox 之后 我在 Visual Studio 2017 中创建了一个简单的 Net Core Web api 项
  • 在 Ruby 中解析街道地址

    我正在将地址处理为数据库各自的字段格式 我可以得到门牌号和街道类型 但试图确定获得没有号码和最后一句话的街道的最佳方法 收到的标准街道地址为 res address 7707 Foo Bar Blvd 到目前为止我可以解析以下内容 hous
  • android中的activity作为对话框

    我想用一个activity as dialog我把活动的主题定为对话 我成功了 但 我遇到的问题是当我在活动之外单击时 它会自动关闭并且之前的活动开始 我尝试了一种方法来制作透明的父布局 它看起来不像对话框 我想使用此活动在我的应用程序中创
  • 通过客户端函数在服务器端调用非静态方法

    我可以通过使用服务器端的静态接收回调结果方法从服务器端获取对象 但我想在我的页面中运行一个非静态方法 通过调用客户端函数来填充 ajax 手风琴 我从服务器端调用的对象是一个复杂的对象 如果我通过回调结果获取它 则无法在客户端使用它 是否有
  • 如何启用 InstallShield 限量版 2015

    我想部署我的项目 为此我转到文件 gt 新项目 gt 其他项目类型 gt 设置和部署 但在那里我找不到任何选项 安装项目 我已经下载了InstallShield Limited Edition 但仍然出现相同的网页 要求我下载 Instal
  • javascript二叉搜索树实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道用 Javascript 实现简单 BTree 的任何好例子吗 我有一堆随机到达的 东西 并且
  • 尝试在 openpyxl 中保存工作簿时,卡在 AttributeError: 'int' 对象没有属性 'reindex' 上

    我无法弄清楚这一点 它抱怨 wb save 行 在我的头撞到这个之后 我不知道是什么原因造成的 我怀疑这与尝试打开一张空白纸并在进行格式化操作后保存它有关 但我无法想象我在那里所做的事情导致了这个问题 当我打开现有的电子表格并进行操作时 它
  • 以编程方式在给定时间暂停/停止 Android MediaPlayer

    我研究了一下 但找不到解决这个问题的任何方法 我想玩一个MediaPlayer并在给定时间暂停 停止 即 从第 6 秒播放到第 17 秒 我知道我可以设置它的起点seekTo 方法 但我可以通过设置终点来暂停 停止播放 当然 在达到文件结束
  • 读取文件列表,应用函数并用相同名称重写

    我有一组包含重复条目的 csv 文件 我需要删除并重写具有相同名称和格式的文件 这是我到目前为止所做的 filenames lt list files pattern csv datalist lt lapply filenames fun
  • 如何在 IIS 中监视 .NET MySQL 数据连接器的连接池

    我已经在谷歌上搜索了相当多的信息 但无法找到确切的答案 我们在日志中看到以下错误 超时已过 获取之前已过了超时时间 来自池的连接 发生这种情况的原因可能是所有 连接正在使用中并且已达到最大池大小 堆栈跟踪 位于 MySql Data MyS