让经典 ASP 从 web.config 文件中的 appsettings 中读入密钥
Having classic ASP read in a key from appsettings in a web.config file
好的,情况是这样的。我在 MVC 4 应用程序中有一个经典的 ASP 网站 运行。我需要经典 ASP 网站才能从 web.config 文件的应用程序设置部分获取密钥。
这是我得到的函数:
' Imports a site string from an xml file (usually web.config)
Function ImportMySite(webConfig, attrName, reformatMSN)
Dim oXML, oNode, oChild, oAttr, dsn
Set oXML=Server.CreateObject("Microsoft.XMLDOM")
oXML.Async = "false"
oXML.Load(Server.MapPath(webConfig))
Set oNode = oXML.GetElementsByTagName("appSettings").Item(0)
Set oChild = oNode.GetElementsByTagName("add")
' Get the first match
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("mysite")
ImportMySite = dsn
Exit Function
End If
Next
End Function
函数调用代码如下:
msn = ImportMySite("web.config", "mysite", false)
所以当我调用这个函数时,我得到的值总是空白或空值。我不确定哪里出错了,我是 XML 的新手,所以也许我遗漏了一些非常明显的东西。我搜索了这些问题,但使用经典 ASP.
找不到与此相关的任何内容
如有任何帮助,我们将不胜感激。
好的,我找到了答案。
我改了:
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("mysite")
ImportMySite = dsn
Exit Function
End If
Next
收件人:
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("value")
ImportMySite = dsn
Exit Function
End If
Next
我很欣赏 Connor 的工作。它让我顺利地实现了这一目标。我做了一些我认为可能对其他人有帮助的更改。
我不想每次调用都重复文件名,我的配置中有几个部分。这似乎更笼统。此外,我将他的更改整合到一个 for-sure 工作示例中。您可以将其粘贴到您的应用中,更改 CONFIG_FILE_PATH 并继续您的生活。
'******************************GetConfigValue*******************************
' Purpose: Utility function to get value from a configuration file.
' Conditions: CONFIG_FILE_PATH must be refer to a valid XML file
' Input: sectionName - a section in the file, eg, appSettings
' attrName - refers to the "key" attribute of an entry
' Output: A string containing the value of the appropriate entry
'***************************************************************************
CONFIG_FILE_PATH="Web.config" 'if no qualifier, refers to this directory. can point elsewhere.
Function GetConfigValue(sectionName, attrName)
Dim oXML, oNode, oChild, oAttr, dsn
Set oXML=Server.CreateObject("Microsoft.XMLDOM")
oXML.Async = "false"
oXML.Load(Server.MapPath(CONFIG_FILE_PATH))
Set oNode = oXML.GetElementsByTagName(sectionName).Item(0)
Set oChild = oNode.GetElementsByTagName("add")
' Get the first match
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("value")
GetConfigValue = dsn
Exit Function
End If
Next
End Function
settingValue = GetConfigValue("appSettings", "someKeyName")
Response.Write(settingValue)
好的,情况是这样的。我在 MVC 4 应用程序中有一个经典的 ASP 网站 运行。我需要经典 ASP 网站才能从 web.config 文件的应用程序设置部分获取密钥。
这是我得到的函数:
' Imports a site string from an xml file (usually web.config)
Function ImportMySite(webConfig, attrName, reformatMSN)
Dim oXML, oNode, oChild, oAttr, dsn
Set oXML=Server.CreateObject("Microsoft.XMLDOM")
oXML.Async = "false"
oXML.Load(Server.MapPath(webConfig))
Set oNode = oXML.GetElementsByTagName("appSettings").Item(0)
Set oChild = oNode.GetElementsByTagName("add")
' Get the first match
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("mysite")
ImportMySite = dsn
Exit Function
End If
Next
End Function
函数调用代码如下:
msn = ImportMySite("web.config", "mysite", false)
所以当我调用这个函数时,我得到的值总是空白或空值。我不确定哪里出错了,我是 XML 的新手,所以也许我遗漏了一些非常明显的东西。我搜索了这些问题,但使用经典 ASP.
找不到与此相关的任何内容如有任何帮助,我们将不胜感激。
好的,我找到了答案。
我改了:
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("mysite")
ImportMySite = dsn
Exit Function
End If
Next
收件人:
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("value")
ImportMySite = dsn
Exit Function
End If
Next
我很欣赏 Connor 的工作。它让我顺利地实现了这一目标。我做了一些我认为可能对其他人有帮助的更改。
我不想每次调用都重复文件名,我的配置中有几个部分。这似乎更笼统。此外,我将他的更改整合到一个 for-sure 工作示例中。您可以将其粘贴到您的应用中,更改 CONFIG_FILE_PATH 并继续您的生活。
'******************************GetConfigValue*******************************
' Purpose: Utility function to get value from a configuration file.
' Conditions: CONFIG_FILE_PATH must be refer to a valid XML file
' Input: sectionName - a section in the file, eg, appSettings
' attrName - refers to the "key" attribute of an entry
' Output: A string containing the value of the appropriate entry
'***************************************************************************
CONFIG_FILE_PATH="Web.config" 'if no qualifier, refers to this directory. can point elsewhere.
Function GetConfigValue(sectionName, attrName)
Dim oXML, oNode, oChild, oAttr, dsn
Set oXML=Server.CreateObject("Microsoft.XMLDOM")
oXML.Async = "false"
oXML.Load(Server.MapPath(CONFIG_FILE_PATH))
Set oNode = oXML.GetElementsByTagName(sectionName).Item(0)
Set oChild = oNode.GetElementsByTagName("add")
' Get the first match
For Each oAttr in oChild
If oAttr.getAttribute("key") = attrName then
dsn = oAttr.getAttribute("value")
GetConfigValue = dsn
Exit Function
End If
Next
End Function
settingValue = GetConfigValue("appSettings", "someKeyName")
Response.Write(settingValue)