我是系统管理员,我想在所有web.config或global.asa文件中只有一个地方可以更改/检查NAS路径,这样,每当路径发生变化时,我都会这样做不必进入所有web.config或global.asa文件进行必要的更改,并希望避免任何错误或遗忘的文件......
我的想法是在本地服务器上创建一个可以设置和更新的环境变量。
<!-- metadata type="typelib" file="C:\Program Files\Common Files\System\ADO\msado15.dll" -->
<script language="vbscript" runat="server">
Sub Application_OnStart
dim strNAS
strNAS = ${MyEnvironmentVar} ???
Application("NAS") = strNAS
End Sub
' Instead of using an hard-coded path like below
'Application("News")="File Name=\\NAS04.MyDomain.com\mydata$\myfile.udl"
'I'd like to use a more flexible way...
Application("News")="File Name=" + Application("NAS") + "mydata$\myfile.udl"
or
Application("News")="File Name=" + ${MyEnvironmentVar} + "mydata$\myfile.udl"
...
</script>
$MyEnvironmentVar
是在本地服务器上设置为环境变量的变量,并具有当前存储系统的路径...
MyEnvironmentVar = "\\NAS04.myDomain.com\"
我在网上看到类似Environment.getenvironmentvariable()
的内容,但我不确定如何使用它,以及它是否适用于web.config和global.asa文件。
答案 0 :(得分:2)
在Global.asa文件中,您可以尝试以下代码:
Set objWSH = CreateObject("WScript.Shell")
Set objUserVariables = objWSH.Environment("USER")
path = objUserVariables("NAS") ' here NAS is name environment variable stored in User variables
如果NAS存储在系统变量中,则相应地更改第二行。
如果你想在这里使用web.config方法,那就是。但是在经典ASP中,web.config只是另一个XML文件。 您的web.config如下所示:
<configuration>
<appSettings>
<add key="NAS" value="your path goes here" />
</appSettings>
</configuration>
VBScript代码如下:
set xmlDoc = server.CreateObject("Microsoft.XMLDOM")
set xmlappSettings = server.CreateObject("Microsoft.XMLDOM")
set xmladd = server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async = false
xmlDoc.load(server.MapPath("web.config"))
set xmlappSettings = xmldoc.GetElementsByTagName("appSettings").Item(0)
set xmladd = xmlappSettings.GetElementsByTagName("add")
for each addItem in xmladd
if addItem.getAttribute("key") = "NAS" then
myVar = addItem.getAttribute("value")
end if
next