從 Active Server Page 訪問時(shí)日期/時(shí)間格式的行為不同_動(dòng)易Cms教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
用戶在使用系統(tǒng)的過程中可能會(huì)碰到類似于下面的錯(cuò)誤提示:
日期的語法錯(cuò)誤 在查詢表達(dá)式 'LastTime>#2005-6-5 下午 07:23:55#' 中。
此問題與服務(wù)器的區(qū)域時(shí)間設(shè)置及注冊表中的讀取時(shí)間方式有關(guān),下面轉(zhuǎn)貼微軟MSDN上關(guān)于此問題的說明。詳見:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;306044
概要
當(dāng)您從 Active Server Page (ASP) 中使用 Now 、 Date 或 Time 函數(shù)時(shí),時(shí)間和日期的格式根據(jù)模擬用戶、身份驗(yàn)證用戶、登錄用戶以及服務(wù)器上操作系統(tǒng)版本等參數(shù)的不同而有所不同。
備注:除非您特地模擬某一用戶,否則模擬用戶與身份驗(yàn)證用戶相同。此外,登錄用戶是指登錄服務(wù)器的用戶。
備注:除非您特地模擬某一用戶,否則模擬用戶與身份驗(yàn)證用戶相同。此外,登錄用戶是指登錄服務(wù)器的用戶。
更多信息
根據(jù)客戶要求,從系統(tǒng)中讀取區(qū)域設(shè)置的方式(主要是日期/時(shí)間格式)已經(jīng)在操作系統(tǒng)的最近版本中做出更改,以便為開發(fā)人員提供對(duì)此功能的更多控制。
雖然區(qū)域設(shè)置在上述的各個(gè)操作系統(tǒng)(除 Windows NT 4.0 之外)中的功能有所不同,但它們具有一項(xiàng)共同的行為特征:當(dāng)沒有人實(shí)際登錄系統(tǒng)時(shí),區(qū)域設(shè)置在所有操作系統(tǒng)版本中具有相同的功能。
當(dāng)有人登錄計(jì)算機(jī)時(shí),IIS 會(huì)讀取登錄用戶的區(qū)域設(shè)置。這些設(shè)置從 HKEY_CURRENT_USER/Control Panel/International 注冊表配置單元中的用戶配置文件設(shè)置中讀取。您可以在"控制面板"的"區(qū)域設(shè)置"部分更改此設(shè)置,更改之后必須重新啟動(dòng)計(jì)算機(jī)。
通常,當(dāng)顯示日期/時(shí)間的 ASP 頁得到請求時(shí),IIS 將首先確定注冊表中是否已加載身份驗(yàn)證用戶的配置文件。假如已加載,IIS 將讀取該用戶配置文件的區(qū)域設(shè)置 ID,然后在 IIS 高速緩存中進(jìn)行查找(假如此區(qū)域設(shè)置的區(qū)域設(shè)置已緩存)。假如被緩存,IIS 將用緩存的格式為請求提供服務(wù)。假如沒有在緩存值中找到該區(qū)域設(shè)置,則從 HKEY_CURRENT_USER/Control Panel/International 注冊表配置單元中該用戶的配置文件設(shè)置中讀取日期/時(shí)間格式。信息隨即被緩存,而 IIS 將顯示具有所緩存日期/時(shí)間格式的 ASP 頁。
假如身份驗(yàn)證用戶沒有用戶配置文件,IIS 將從系統(tǒng)默認(rèn)設(shè)置中讀取區(qū)域設(shè)置 ID,然后在緩存的區(qū)域設(shè)置中查找該區(qū)域設(shè)置。假如找到緩存值,IIS 將用緩存的格式為請求提供服務(wù);否則,IIS 將從 HKEY_USERS/.Default/Control Panel/International 注冊表配置單元中的系統(tǒng)默認(rèn)設(shè)置中讀取該格式。信息隨即被緩存,而 IIS 將顯示具有所緩存日期/時(shí)間格式的 ASP 頁。
但是,此邏輯存在問題。對(duì)于每一個(gè)請求,IIS 將檢查是否為結(jié)果區(qū)域設(shè)置 ID 緩存了日期/時(shí)間格式。假如 IIS 找到緩存的格式,就會(huì)使用它。假如首次瀏覽到該頁的用戶的區(qū)域設(shè)置 ID 與要用于 ASP 頁的預(yù)期區(qū)域設(shè)置 ID 相同,但它們的日期格式不同于要用于 ASP 頁的預(yù)期日期格式,則會(huì)出現(xiàn)問題。在這種情況下,該區(qū)域設(shè)置 ID 的緩存日期格式具有錯(cuò)誤的格式,并且將向請求該頁的其余用戶提供。
雖然區(qū)域設(shè)置在上述的各個(gè)操作系統(tǒng)(除 Windows NT 4.0 之外)中的功能有所不同,但它們具有一項(xiàng)共同的行為特征:當(dāng)沒有人實(shí)際登錄系統(tǒng)時(shí),區(qū)域設(shè)置在所有操作系統(tǒng)版本中具有相同的功能。
從 ASP 中訪問時(shí)的日期/時(shí)間格式化方式
IIS 4.0 (Windows NT 4.0)
當(dāng)沒有人實(shí)際登錄服務(wù)器時(shí),IIS 從系統(tǒng)默認(rèn)設(shè)置中(尤其是從 Locale.nls 文件中)讀取日期/時(shí)間格式(和其他區(qū)域設(shè)置)。您可以在"控制面板"的"區(qū)域設(shè)置"部分更改此設(shè)置,更改之后必須重新啟動(dòng)計(jì)算機(jī)。當(dāng)有人登錄計(jì)算機(jī)時(shí),IIS 會(huì)讀取登錄用戶的區(qū)域設(shè)置。這些設(shè)置從 HKEY_CURRENT_USER/Control Panel/International 注冊表配置單元中的用戶配置文件設(shè)置中讀取。您可以在"控制面板"的"區(qū)域設(shè)置"部分更改此設(shè)置,更改之后必須重新啟動(dòng)計(jì)算機(jī)。
IIS 5.0(Windows 2000 和 Windows 2000 Service Pack 1)
在操作系統(tǒng)安裝過程中,將在系統(tǒng)注冊表的 HKEY_USERS/.Default/Control Panel/International 配置單元中指定并寫入?yún)^(qū)域設(shè)置選項(xiàng)。通常,當(dāng)顯示日期/時(shí)間的 ASP 頁得到請求時(shí),IIS 將首先確定注冊表中是否已加載身份驗(yàn)證用戶的配置文件。假如已加載,IIS 將讀取該用戶配置文件的區(qū)域設(shè)置 ID,然后在 IIS 高速緩存中進(jìn)行查找(假如此區(qū)域設(shè)置的區(qū)域設(shè)置已緩存)。假如被緩存,IIS 將用緩存的格式為請求提供服務(wù)。假如沒有在緩存值中找到該區(qū)域設(shè)置,則從 HKEY_CURRENT_USER/Control Panel/International 注冊表配置單元中該用戶的配置文件設(shè)置中讀取日期/時(shí)間格式。信息隨即被緩存,而 IIS 將顯示具有所緩存日期/時(shí)間格式的 ASP 頁。
假如身份驗(yàn)證用戶沒有用戶配置文件,IIS 將從系統(tǒng)默認(rèn)設(shè)置中讀取區(qū)域設(shè)置 ID,然后在緩存的區(qū)域設(shè)置中查找該區(qū)域設(shè)置。假如找到緩存值,IIS 將用緩存的格式為請求提供服務(wù);否則,IIS 將從 HKEY_USERS/.Default/Control Panel/International 注冊表配置單元中的系統(tǒng)默認(rèn)設(shè)置中讀取該格式。信息隨即被緩存,而 IIS 將顯示具有所緩存日期/時(shí)間格式的 ASP 頁。
但是,此邏輯存在問題。對(duì)于每一個(gè)請求,IIS 將檢查是否為結(jié)果區(qū)域設(shè)置 ID 緩存了日期/時(shí)間格式。假如 IIS 找到緩存的格式,就會(huì)使用它。假如首次瀏覽到該頁的用戶的區(qū)域設(shè)置 ID 與要用于 ASP 頁的預(yù)期區(qū)域設(shè)置 ID 相同,但它們的日期格式不同于要用于 ASP 頁的預(yù)期日期格式,則會(huì)出現(xiàn)問題。在這種情況下,該區(qū)域設(shè)置 ID 的緩存日期格式具有錯(cuò)誤的格式,并且將向請求該頁的其余用戶提供。
相關(guān)動(dòng)易Cms教程:
- MAC錯(cuò)誤的解決方法
- 如何屏蔽動(dòng)易后臺(tái)導(dǎo)航里的某個(gè)功能菜單?
- 動(dòng)易.NET版本留言自動(dòng)選定欄目方法
- 動(dòng)易SiteFactoty整合Discuz!NT3.0
- 在任意位置獲取根節(jié)點(diǎn)ID標(biāo)簽
- 如何開啟SiteWeaver6.8的支持,反對(duì)功能
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之四----動(dòng)易系統(tǒng)安裝篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之三----數(shù)據(jù)庫篇
- Windows 2008安裝動(dòng)易.NET系統(tǒng)之二----IIS、目錄環(huán)境配置篇
- 數(shù)據(jù)庫修復(fù),SQL Server 2005內(nèi)部操作不一致的處理
- 如何安裝動(dòng)易.net程序權(quán)限配置
- 為什么提示對(duì)Windows系統(tǒng)文件夾下的Temp目錄沒有訪問權(quán)限?
動(dòng)易Cms教程教程Rss訂閱Cms教程搜索
動(dòng)易Cms教程推薦
- 文章列表標(biāo)簽GetArticleList自定義CSS控制參數(shù)說明
- 升級(jí)到SiteFactory
- 如何在下載頁面列出與此下載相關(guān)的文章?
- 升級(jí)到SP5,錯(cuò)誤:處理中的數(shù)據(jù)超過允許的極限
- 如何將圖片內(nèi)容頁的顯示效果完全個(gè)性化?
- 自己動(dòng)手用麥咖啡(mcafee)打造自己的安全網(wǎng)站!安全系統(tǒng)(服務(wù)器)!
- 解決為備份或還原操作指定的設(shè)備太多,,只允許指定64 個(gè)設(shè)備 res
- 解決安裝siteweaver版本出現(xiàn)未指定的錯(cuò)誤的方法
- SF整合Discuz!NT2.5完美整合
- 解決默認(rèn)注冊時(shí)性別為“女”的問題
- 相關(guān)鏈接:
復(fù)制本頁鏈接| 搜索從 Active Server Page 訪問時(shí)日期/時(shí)間格式的行為不同
- 教程說明:
動(dòng)易Cms教程-從 Active Server Page 訪問時(shí)日期/時(shí)間格式的行為不同
。