2

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

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

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

有没有办法实现这一目标?是否有任何存储/事件等可以在我可以存储此连接字符串并更新它而无需重新启动应用程序的地方使用?

任何帮助将非常感激。

4

2 回答 2

1

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

然后,您可以在任务调度程序中使用可执行文件来修改配置文件。

于 2013-04-19T14:03:34.653 回答
1

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

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

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

于 2013-04-21T17:06:18.793 回答