gpt4 book ai didi

asp-classic - 使用经典 ASP 区分测试和生产的最佳方法

转载 作者:行者123 更新时间:2023-12-04 15:58:32 49 4
gpt4 key购买 nike

我继承了一个经典的 ASP 应用程序。有各种各样的事情需要整理,但我被迫逐渐做事情(我不能对每个脚本都进行大规模更改)。

系统中有一些地方带有硬编码的 url。某些脚本必须在升级为 live 之前进行更改,以便将测试 Web 根名称更改为实时 Web 根名称。我正在寻找避免这种情况的方法(基本上以编程方式计算服务器)。

这并不难。对 Request("SERVER_NAME") 和这类事情的简单检查:

appName = Request.ServerVariables("SCRIPT_NAME")
i = InStr(2, appName, "/") 'keep initial "/"
If i > 0 Then
appName = Left(appName, i)
End If

这在“无处不在”的脚本中可以解决问题。然后只需设置一个全局变量来保存完整的“http(s)://server/app/”或 MakeUrlAbsolute() 的函数,然后就可以了。

然而,这对我来说有点可疑。这不是更好地存储在应用程序级别吗?这建议在 Global.asa 中进行设置,例如:

Sub Application_OnStart()
Application("WebRoot") = ...
End Sub

但现在我无法掌握 SERVER_NAME,所以我只有 2 个不同的 Global.asa 文件(每个环境一个)。

这是我唯一的选择吗?在 Application_OnStart 中对每个请求或硬编码进行处理?
也许使用 Session_OnStart 是一种妥协。或者是否有一些巧妙的技巧来访问 Application_OnStart 中的信息?也许人们会采用硬编码,因为 Global.asa 不经常更改。

最佳答案

我的 ADO 连接方法如下所示。

'Servername for Application Root Drive
Select Case Left(Request.ServerVariables("PATH_TRANSLATED"), 1)
Case "c" strSrvr = "80.212.207.211" 'my remote server ip
Case Else strSrvr = "(local)" 'local Sql instance (my project on D: drive)
End Select

strConn = "Driver={SQL Server};Server="& strSrvr &";uid=DBUSER;pwd=MYPASS;database=MYDATABASE"

Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open(strConn)

关于asp-classic - 使用经典 ASP 区分测试和生产的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20220198/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com