目前工作中开发都是使用asp.net,很少使用asp,观念上认为asp.net比asp要高级,实际是也是如此,但asp也并非没有使用场景。比如asp不需要编译,这个特性目前对于我们来说就非常有吸引力了,并且在一个asp.net网站中,asp可以同时存在并正常运行,可以做为一些辅助工具使用。
下面来看下iis中原本运行asp.net网站的,要全面支持asp要做哪些重要的设置。
1、允许asp找到父级目录:
2、设置对应的程序池,允许asp运行调用一些32位的组件,比如ado等
这样就能全面支持asp了。
下面来个asp读取access数据库的例子,其实也可以读取MSSQL,配置不同一连接串就行了。
MyFunctions.asp
<% '定义全局变量 Dim objConn Dim BlogPath BlogPath = GetReallyDirectory() dim ZC_DATABASE_PATH ZC_DATABASE_PATH="#%2test0b59bdc280f108920a7c012334.mdb" dim ZC_MSSQL_ENABLE ZC_MSSQL_ENABLE=false dim ZC_DATABASE_PWDSTR ZC_DATABASE_PWDSTR=";Persist Security Info=False;Jet OLEDB:Database Password=$%*#12345test" '如果没设置密码,变量设置为空字符串即可 dim PublicObjFSO '********************************************************* ' 目的: 得到实际上的BLOG的真实物理目录 '********************************************************* Function GetReallyDirectory() 'If CurrentReallyDirectory<>"" Then 'GetReallyDirectory=CurrentReallyDirectory 'Exit Function 'End If If Not IsObject(PublicObjFSO) Then Set PublicObjFSO=Server.CreateObject("Scripting.FileSystemObject") Dim p p=Server.MapPath(".") & "" GetReallyDirectory=PublicObjFSO.GetFolder(p).Path & "" '函数名赋值,意思是返回值 'Err.Clear End Function '********************************************************* ' 目的: 数据库连接 '********************************************************* Dim IsDBConnect '数据库是否已连接 IsDBConnect=False Function OpenConnect() 'On Error Resume Next If IsDBConnect=True Then OpenConnect=True Exit Function End If 'plugin node '判定是否为子目录调用 Dim strDbPath strDbPath= BlogPath & ZC_DATABASE_PATH 'Response.Write(ZC_DATABASE_PWDSTR & "<br/>") 'Response.Write(ZC_DATABASE_PATH & "<br/>") 'Response.Write(strDbPath & "<br/>") Set objConn = Server.CreateObject("ADODB.Connection") 'If ZC_MSSQL_ENABLE=True Then 'objConn.Open "Provider=SqlOLEDB;Data Source="&ZC_MSSQL_SERVER&";Initial Catalog="&ZC_MSSQL_DATABASE&";Persist Security Info=True;User ID="&ZC_MSSQL_USERNAME&";Password="&ZC_MSSQL_PASSWORD&";" 'ZC_SQL_POUND_KEY="'" 'Else objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDbPath & ZC_DATABASE_PWDSTR 'End If If Err.Number=0 Then IsDBConnect=True OpenConnect=True Else Err.Clear Err.Raise 1 End If End Function '********************************************************* '********************************************************* ' 目的: DB Disable Connect '********************************************************* Function CloseConnect() If IsDBConnect=False Then Exit Function End If objConn.Close Set objConn=Nothing IsDBConnect=False CloseConnect=True End Function '********************************************************* %>
default.asp
<% Option Explicit %> <% Response.Charset="UTF-8" %> <% Response.Buffer=True %> <!-- #include file="MyFunctions.asp" --> <% Response.Write("myaspweb<br/>") Response.Write("current dir : " & GetReallyDirectory() & "<br/>") dim openret openret = OpenConnect() Response.Write("openret : " & openret & "<br/>") dim objRS dim aryAllData,l,i Set objRS=objConn.Execute("SELECT [mem_ID],[mem_Name],[mem_Level],[mem_Password],[mem_Email],[mem_HomePage],[mem_PostLogs],[mem_Url],[mem_Template],[mem_FullUrl],[mem_Intro],[mem_Meta] FROM [blog_Member] ORDER BY [mem_ID] ASC") If (Not objRS.bof) And (Not objRS.eof) Then aryAllData=objRS.GetRows(objRS.RecordCount) objRS.Close Set objRS=Nothing 'k=UBound(aryAllData,1) '字段数最大索引 l=UBound(aryAllData,2) '记录数最大索引 'Response.Write("k : " & k & "<br/>") Response.Write("l : " & l & "<br/>") '& " " For i=0 To l Response.Write(aryAllData(0,i)& " "&aryAllData(1,i)& " "&aryAllData(2,i)& " "&aryAllData(3,i)& " "&aryAllData(4,i)& " "&aryAllData(5,i)& " "&aryAllData(6,i)& " "&aryAllData(7,i)& " "&aryAllData(8,i)& " "&aryAllData(9,i)&aryAllData(10,i)& " "&aryAllData(11,i) & "<br/>") Next End If CloseConnect() %>
运行效果: