Iis 经典ASP";“停机维修”;页

Iis 经典ASP";“停机维修”;页,iis,ms-access,asp-classic,Iis,Ms Access,Asp Classic,我正在对传统的经典ASP应用程序进行一些更改。我已经在本地进行了更改,现在我想将更改的文件复制到服务器。同时,我需要下载Access数据库,在一些表中添加一些字段,然后再次上传。因此,我需要能够阻止访问者在发生这种情况时修改数据库 我的主要问题是,设置一个快速的“停机维护”页面的最佳方式是什么,无论访问者请求哪个页面,该页面都会立即显示出来。应用程序已经建立,所以我宁愿选择一个不需要我修改应用程序架构的答案 我的第二个问题(也许这应该是一个单独的问题): 有没有更好的方法将字段添加到db表中,而

我正在对传统的经典ASP应用程序进行一些更改。我已经在本地进行了更改,现在我想将更改的文件复制到服务器。同时,我需要下载Access数据库,在一些表中添加一些字段,然后再次上传。因此,我需要能够阻止访问者在发生这种情况时修改数据库

我的主要问题是,设置一个快速的“停机维护”页面的最佳方式是什么,无论访问者请求哪个页面,该页面都会立即显示出来。应用程序已经建立,所以我宁愿选择一个不需要我修改应用程序架构的答案

我的第二个问题(也许这应该是一个单独的问题): 有没有更好的方法将字段添加到db表中,而不是将其向下复制、修改并重新粘贴?请原谅,如果这是一个愚蠢的问题-我是ASP的新手-也是Windows的新手

我只能通过FTP访问远程服务器


谢谢。

如果您只有对服务器的FTP访问权限(并且无法控制IIS),只需插入响应。重定向到所有asp页面顶部的“down for maintenace”页面,并在更新完成后将其删除

对数据库的更改可以通过ALTER TABLE语句来执行。

关于“向下维护”页面问题,您可以进一步了解mapache的想法,如果每个页面中都有包含的文件(用于标题),您可以将响应放入其中。重定向该文件并将其上载到位。这将避免对所有页面进行更改

另一个选项是上载一个临时html文件,IIS将首先找到该文件。在IIS中,您可以设置在域/文件夹中查找哪个page name.ext。例如,当您浏览www.example.com时,您没有指定要查找的页面,因此它可以加载index.html或index.htm(例如,取决于设置)。这将取决于您的主机配置设置,但我相信您可以找到他们使用的是哪一种。IIS常用的有default.htm、default.html、index.html和index.htm。然后你可以把它放在网站的每个文件夹中(我知道这并不理想),然后进行维护

更新数据库时,可以运行用sql编写的迁移脚本来更新数据库的架构和数据。由于您只有FTP访问权限,因此需要某种页面,您可以将sql粘贴到其中并运行。但是,这会带来安全问题,因此下载数据库、进行更改然后再次上载可能更容易。除此之外,您还可以保存文件并进行备份:-)

希望这有帮助。

两种方法:

1. 如果在每个asp页面中都执行服务器端包含,则可以在该包含中执行response.redirect以转到/upgrading.html

2.
在global.asa中,您可以在会话启动事件中执行response.redirect。这可能是最好的办法。将仅适用于.asp页面,如果客户端访问.html页面则不适用。

您有任何控制面板访问该站点的权限吗

当我曾经运行过许多ASP经典网站时,我经常在需要的五分钟内关闭它们

我知道你对来访者很粗鲁

正如其他人所说,您可以重定向到一个页面,但这不会阻止人们访问html页面中的静态内容,但这可能无关紧要,至少可以阻止他们在下载mdb时对其进行更改

很遗憾,ASP.net的app_offline.htm不适用于ASP classic

我使用的另一个选项是创建一个包含脱机消息的default.htm文件,IIS设置default.htm的方式覆盖default.asp,因此只需上传default.htm即可更改主页。当然,这不会阻止任何人使用任何其他.asp页面


所以没有真正的答案!抱歉。

比包含文件更好,只需使用Global.asa即可

在Global.asa的应用程序启动中,添加

Application("Offline")= True
在所有ASP文件的顶部,添加

If VarType(Application("Offline")) = vbBoolean Then If Application("Offline") Then Response.Redirect "App_Offline.htm"
(双if解决了缺少VBScript短路运算符的问题,从而避免了任何数据类型错误。)

您甚至可以将Global.asa代码设置为

Set fso= Server.CreateObject("Scripting.FileSystemObject")
Application("Offline")= fso.FileExists(Server.MapPath("App_Offline.htm"))
Set fso= Nothing

这将启用脱机页面(如果存在),如ASP.NET。但是,仅当服务器重置(使用iisreset)或修改Global.asa文件时,才重新解析应用程序启动代码,仅添加App_Offline.htm是不够的。

在web.config中添加以下代码


并将app_脱机放置在根文件夹下。这会奏效的

改变桌子。SQL!当然P我不觉得自己很愚蠢。陌生的环境使我的头脑变得模糊起来。因此,我们的计划是,将ALTERTABLE语句粘贴到asp文件中,上传它,在浏览器中请求页面,然后发送其余的文件。谢谢mapache Joel。如果您使用ASP编程,那么您使用的不是Access数据库,而是Jet数据库。