在经典 ASP 中的每个午夜更新应用程序变量

Posted

技术标签:

【中文标题】在经典 ASP 中的每个午夜更新应用程序变量【英文标题】:Updating Application variable at every midnight in classic ASP 【发布时间】:2013-04-12 21:22:09 【问题描述】:

我有一个经典的 ASP 应用程序,它的连接字符串存储为应用程序变量,并在 Application_OnStart() 事件中初始化。

我想在每个午夜更改此连接字符串并让它指向其他数据库。

我想到了一个类似连接字符串的 XML,使用带有任务调度程序的 C# EXE 来更改它,然后重新启动 IIS,最后从Application_OnStart() 中的 XML 中读取修改后的连接字符串,但我不希望用户松开他们的会话。而且还有很多地方使用了这个连接字符串,所以我想不出在每个地方添加逻辑来读取 XML(使用 C# COM 组件)。

有什么方法可以做到这一点吗?是否有任何存储/事件等可以在我可以存储此连接字符串并更新它而无需重新启动应用程序的地方使用?

任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

当您的应用程序启动时,您可以将file system watcher 添加到配置文件中,该配置文件将在更改时触发。在该事件处理程序中,您可以修改表示连接字符串的变量。

然后你可以让你的可执行文件在任务调度器中修改配置文件。

【讨论】:

【参考方案2】:

您可以使用您使用代码修改的应用程序级变量 - 我认为它不会重置用户的会话:

<%@ Language="VBScript" %> 
<% 
Application.Lock  
Application("ConnString") = "new connection string"
Application.Unlock  
%>

您可以制作一个 ASP 页面来进行更改。如果这是可以自动化的,您可以编写一些简单的东西来调用该页面并安排它。

【讨论】:

以上是关于在经典 ASP 中的每个午夜更新应用程序变量的主要内容,如果未能解决你的问题,请参考以下文章

经典 ASP/ASP.NET 应用程序变量

如何在午夜更新应用小部件?

需要根据 asp.net mvc 应用程序中的计时器更新单例变量

按钮单击 asp 以删除 SQL 服务器中的行 - 经典 asp 和 vbscript

经典asp,jquery和Ajax最可靠的框架

ASP.NET Core 2.0 中的应用程序变量