小编Ada*_*dam的帖子

在经典 ASP 中使用 ODBC 连接器时,MySQL“max_execution_time”默认为 30000ms,并且无法更改

这个问题已经困扰我几个月了,而且我还没有找到解决方案。

在经典 ASP 应用程序中使用 MySQL ODBC 连接器 (8.0) 时的默认max_execution_time设置为 30000 毫秒(30 秒),我不知道如何增加它。

我有一个大表(400,000 多行),我UPDATE每天使用该命令多次执行各种计算,通常这需要不到 30 秒的时间,但随着表的不断增长,我开始看到越来越多的计算[MySQL][ODBC 8.0(w) Driver][mysqld-8.0.15]Query execution was interrupted, maximum statement execution time exceeded正在记录错误。

在寻找解决方案时,我不断遇到相同的答案:

  • 设置max_execution_time = xmy.ini

  • SET [GLOBAL]/[SESSION] max_execution_time = x;或者在运行 SQL 命令之前执行。

这些解决方案工作正常,但仅当您使用 MySQL 客户端(例如 MySQL Workbench)时才有效,但在经典 ASP 应用程序中使用 ODBC 连接器时它们没有任何区别。

下面的代码总是会输出max_execution_time: 30000

Dim dbConn, dbRS

Set dbConn = Server.CreateObject("ADODB.Connection") : dbConn.Open("DSN=my_system_dsn")
Set dbRS = dbConn.Execute("SHOW VARIABLES WHERE Variable_name = 'max_execution_time';")

Response.Write(dbRS("Variable_name") & ": …
Run Code Online (Sandbox Code Playgroud)

odbc mysql-connector asp-classic

5
推荐指数
1
解决办法
2万
查看次数

限制通过 IIS 中的签名 URL 访问内容?

过去,我使用 NGINX 和ngx_http_secure_link_module来实现这一点,效果很好。如果您尝试直接访问媒体文件,您会得到一个403 access denied error. 但是使用有效的签名 URL...

emample.com/media/audio.mp3?expires=[1 hour]&signature=[SHA2(filename+expiration+secret)]
Run Code Online (Sandbox Code Playgroud)

...授予访问权限。

但我现在正在使用 IIS,并且我想实现同样的目标。我尝试过将 ASP 代码与 URL 重写模块结合使用,在其中创建一个空媒体文件夹,其中包含一个 ASP 页面来处理请求,将所有媒体存储在脱机文件夹中,并使用重写模块来欺骗 URL。

例如...

emample.com/media/audio.mp3?expires=[1 hour]&signature=[SHA2(filename+expiration+secret)]
Run Code Online (Sandbox Code Playgroud)

...将重写到名为“stream.asp”的页面。我会检查签名,如果不正确则返回错误,但否则我会更改内容类型属性以匹配文件的属性,然后从存储实际文件的脱机文件夹中执行二进制流。

这对于文档来说效果很好,但对于音频和视频来说,它很慢,而且你无法来回跳过内容。我确信我可以调整代码来实现这一点,但是以这种方式访问​​文件会给 IIS 带来很大的压力。

我正在寻找的是 IIS 中的简单 URL 检查,它根据 URL 签名检查授予对文件的访问权限或拒绝文件访问权限。

有人知道可以做到这一点的 IIS 模块吗?或者甚至可以使用 URL 重写模块来实现这一点?

iis asp-classic

5
推荐指数
0
解决办法
318
查看次数

标签 统计

asp-classic ×2

iis ×1

mysql-connector ×1

odbc ×1