- Login
帳號:
密碼:
ASP MENU
線上教學
   ASP 教學
VB.NET 教學
JSP 教學
JAVA 教學
完整 ASP 教學
程式下載
   ASP 程式下載
提供 ASP 程式
程式量身訂做
   收費標準
填寫需求表
討論交流專區
   程式討論區
電腦資訊交流
工作機會
   社會人就職情報
汎亞人力銀行
大台中人力銀行
大高雄人力銀行
相關連結
   ASP 虛擬空間
ASP 相關網站
聯絡我們
   意見信箱
加入會員程式討論區線上購物回首頁
ASP 教學
基於ASP的編程常見問題
基於ASP技術開發Internet/Intranet上的MIS系統是非常方便的,首先是它借用了ADO技術和概念,同時通過ODBC訪問數據庫,達到了充分的靈活性和多平台性,另外,由於ASP利用VBS和JS腳本語言,也保證大多數開發者很快進入開發過程,減少了學習的過程。
  但是,由於ASP是基於Internet/Intranet方式的,它和傳統的C/S結構畢竟有所不同,這樣在開發中也要注意一些細節問題。本文講述常見的一些問題,並給出解決方法。

問題描述

A. 無法正確運行ASP

  當我們建立了一個ASP文件,並且符合語法時,通過瀏覽器輸入以下地址,或通過資源管理器打開瀏覽:
c:\inetpub\wwwroot\a.asp
將出現無法運行的錯誤,並提示權限不對或文件無法訪問,原因是,ASP文件首先要求站點是具備“執行(腳本)”屬性的;然後要求按照URL格式輸入地址,而不是DOS格式,所以,請改正這兩個錯誤。

B. 程序移動位置後,無法訪問數據庫

  這種錯誤首先在ODBC,如果ODBC數據源設置正確,那麼需要注意ASP中打開數據庫的命令:Conn.Open 的參數是否正確。如果正確,則需要注意是否使用了global.asa文件,該文件是ASP連接數據庫的配置文件,該文件內容如下:
<SCRIPT LANGUAGE="VBScript" RUNAT="Server">
'You can add special event handlers in this file that will get run automatically when special Active Server Pages events
'occur. To create these handlers, just create a subroutine with a name from the list below that corresponds to the event
'you want to use. For example, to create an event handler for Session_OnStart, you would put the following code into this
'file (without the comments):
'EventName Description
'Session_OnStart Runs the first time a user runs any page in your application
'Session_OnEnd Runs when a user's session times out or quits your application
'Application_OnStart Runs once when the first page of your application is run for the first time by any user
'Application_OnEnd Runs once when the web server shuts down

</SCRIPT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Session_OnStart
'==Visual InterDev Generated - DataConnection startspan==
'--Project Data Connection
Session("Customers_ConnectionString")="DRIVER={SQL Server};SERVER=(local);UID=sa;PWD=;APP=Microsoft(R)Developer Studio;WSID=GREGLEAK;DATABASE=Customers"
Session("Customers_ConnectionTimeout") = 15
Session("Customers_CommandTimeout") = 30
Session("Customers_RuntimeUserName") = "sa"
Session("Customers_RuntimePassword") = ""
'==Visual InterDev Generated - DataConnection endspan==
End Sub
</SCRIPT>
要注意其中的DSN,其中SERVER後一定是數據庫服務器名稱,如果該處不正確,需要改正。另外是UID和PWD是否正確;還有,如果OPEN命令使用了SESSION,則需要注意
Session("Customers_RuntimeUserName") = "sa"
Session("Customers_RuntimePassword") = ""
是否正確。

C. RUNAT使用問題

  在腳本語法中,有RUNAT參數,表示該腳本是運行在服務器上還是客戶機上。如果有RUNAT=SERVER則腳本運行在服務器上,由ASP解釋程序來解釋執行,並將結果傳遞給WWW服務器;否則就是運行在客戶機上,由瀏覽器的腳本虛擬機解釋執行,這時,和一般的腳本沒有區別。所以,一定要注意ASP語法中的命令,如:REQUEST,QUERYSTRING,WRITE等命令或對象必須在具備RUNAT參數的腳本運行;而訪問HTML的FORM對象的腳本一定沒有RUNAT參數,因為HTML的FORM是客戶機方面的對象,服務器無法訪問。

D. 無法向SQL SERVER插入日期字段

  如果遇到必須使用美國日期格式插入日期的情況,則需要在服務器的區域設置上設置中國長日期格式,請特別注意,ASP是在服務器上運行的,生成的HTML結果傳遞給瀏覽器,所以,所有格式設置必須在服務器上。

E. 如何向客戶機推送提示信息

  如果在服務器上判斷訪問錯誤,如註冊失敗、無權操作記錄等需要提示用戶的信息。這個信息需要推送到客戶機上,並出現提示窗口,這是經常遇到的問題。這個時候,必須使用動態頁面的方式,因為錯誤是在服務器上判斷的,而提示是在瀏覽器上出現的。我們 可以使用下面的ASP來推送錯誤:
on error resume next
conn=server.createobject("adodb.connection")
conn.open "pubs","wlf",""
'如果註冊失敗則錯誤數大於0
if conn.errors.countɬ then
‘以下代碼生成客戶機上的腳本語言,提供給瀏覽器執行
response.write "<script language=javascript>" & chr(13)
response.write "{" & chr(13)
response.write " window.alert("您無權訪問數據庫!")" & chr(13)
response.write "}" & chr(13)
response.write "</script >" & chr(13)
end if

F· 客戶機盡量使用固定IP地址

   由於ASP連接數據庫是定時的,默認是:
Session("Customers_ConnectionTimeout") = 15
Session("Customers_CommandTimeout") = 30
兩個設置決定的時間,超時後自動斷開連接,所以,當刷新頁面重新執行ASP代碼時,如果IP分配時間不夠(動態IP分配需要時間,比靜態長很多!),可能無法連接上,則出現錯誤信息,所以盡量用靜態IP地址。

總結

  使用ASP編程是很方便的。由於ADO跨越了ODBC,形成具備多線程處理能力的數據庫操作方式,並且是在服務器上運行,雖然增加了服務器的壓力,好在現在的服務器(哪怕是PC服務器)處理能力都非常強,這樣反而發揮了服務器的效率。另外,由於ASP可以和ActiveX控件進行良好的接口,也使開發者容易根據自己的需要擴充程序,並直接建立在ASP編程環境上,唯一需要注意的是,一定要以Internet/Intranet的思路設計和編寫程序,否則將事倍功半。



頂端
本網頁最佳瀏覽模式為:瀏覽器 IE4.0 以上    解析度: 800 x 600
Copyright © 2000-2020 COOLASP All Rights Reserved