我有一个经典的ASP应用程序,它将连接字符串存储为应用程序变量,并在Application_OnStart()
事件中初始化。
我希望每隔午夜更改此连接字符串,并将其指向其他数据库。
我想到了一个类似于连接字符串的XML,使用C#EXE和任务调度程序来更改它,然后重新启动IIS,最后从Application_OnStart()
中的XML读取修改后的连接字符串,但我不知道希望用户放松他们的会话。此外,还有大量使用此连接字符串的地方,因此我无法考虑在每个位置添加逻辑来读取XML(使用C#COM组件)。
有没有办法实现这个目标?是否存在任何存储/事件等,可以存储此连接字符串并更新它而无需重新启动应用程序?
任何帮助都会非常感激。
答案 0 :(得分:1)
启动应用程序后,您可以在配置文件中添加file system watcher,该文件在更改时将被触发。在该事件处理程序中,您可以修改表示连接字符串的变量。
然后,您可以在任务计划程序中使用您的可执行文件来修改配置文件。
答案 1 :(得分:1)
您可以使用您使用代码修改的应用程序级变量 - 我认为它不会重置用户的会话:
<%@ Language="VBScript" %>
<%
Application.Lock
Application("ConnString") = "new connection string"
Application.Unlock
%>
您可以制作一个可以进行更改的ASP页面。如果这是可以自动化的东西,你可以写一些简单的东西来调用那个页面并安排它。