asp.net|web
當編寫 ASP.NET 移動 Web 應用程式時,您幾乎可以使用 ASP.NET 的所有功能。但是,首先要考慮相容性問題。
錯誤處理和報告
如果 ASP.NET 應用程式在處理請求時遇到未處理的異常或其他錯誤,就會建置錯誤頁。異常可能會在請求處理過程中的任何時候發生。例如,它們可能會在讀取設定檔 (Web.config),編譯頁或運行頁時發生。
您可以配置應用程式,使其產生預設或自訂的錯誤頁。如果將應用程式配置為產生預設錯誤頁,ASP.NET 將設定響應中的錯誤碼,並呈現詳細描述錯誤的頁。但是,如果將應用程式配置為產生自訂錯誤頁,每個錯誤請求將被重新導向到您為其提供的自訂頁。
許多行動裝置都無法呈現錯誤頁的詳細內容。這些裝置通常只顯示特定於裝置的錯誤資訊或錯誤碼。針對這種情況,ASP.NET 移動 Web Form頁會嘗試格式化錯誤頁,使其能夠在裝置上呈現。但是,這一特定於裝置的呈現僅限於在運行頁時發生的異常。因此,如果您使用的是預設錯誤頁,則應該首先從案頭瀏覽器中試用移動 Web Form頁,以檢測潛在的配置或編譯錯誤。
如果您計劃在 ASP.NET 移動 Web 應用程式中使用自訂錯誤頁,ASP.NET 可以為不同的行動裝置相應地格式化錯誤頁(如果您使用行動控制項編寫了自訂錯誤頁)。
有關 ASP.NET 中的錯誤頁的更多資訊,請參見 ErrorPage 屬性文檔。有關錯誤管理的更多資訊,請參見管理適應性錯誤報表。
跟蹤
ASP.NET 提供了一種叫做“跟蹤”的便於使用的功能,可用來調試 Web 應用程式。ASP.NET 提供了兩個層級的跟蹤:頁層級跟蹤和應用程式層級跟蹤。頁層級跟蹤以附加到每個被跟蹤頁的 HTML 程式碼的形式提供跟蹤資訊,而應用程式層級的跟蹤通過應用程式中的一種特殊映射 URL (Trace.axd) 來提供跟蹤資訊。
如果您在 ASP.NET 移動 Web 應用程式中使用頁層級跟蹤,附加到呈現的 HTML 程式碼可能會防止輸出內容在行動裝置上呈現。對於 ASP.NET 移動 Web 應用程式,您必須使用應用程式層級的跟蹤並從案頭 網頁瀏覽器中檢查跟蹤輸出。
有關 ASP.NET 的跟蹤功能的更多資訊,請參見 ASP.NET 跟蹤。
工作階段狀態和 Cookie
ASP.NET 提供了豐富的會話管理功能,它們使您能夠方便地跨要求管理狀態。通常,ASP.NET 工作階段狀態功能會使用瀏覽器上的 Cookie,但它也可以配置為在不使用 Cookie 的情況下運行。
在 ASP.NET 中,您可以使用 Session 來跨越多個請求儲存有關使用者會話的資訊。ASP.NET 中的會話管理是可伸縮而可靠的,因此您甚至可以跨越網路場使用該功能。預設情況下,ASP.NET Session 使用用戶端 Cookie 將標識符儲存在用戶端電腦上。您可以使用該標識符跨越伺服器往返過程尋找會話。此外,ASP.NET Session 支援無 Cookie 的會話模式,該模式最初將用戶端重新導向到包含一個工作階段識別項的新 URL。然後,工作階段識別項將自動從 URL 中分析出來。
當編寫 ASP.NET 移動 Web 應用程式時,必須牢記某些行動裝置和無線網關不支援 Cookie。若要添加對這些裝置的支援,必須將應用程式配置為使用無 Cookie 的會話。
有關 ASP.NET 的會話管理功能的更多資訊,請參見 Web Form狀態管理介紹和瞭解狀態管理。
使用工作階段狀態時的注意事項
當編寫使用工作階段狀態管理的 ASP.NET 移動 Web 應用程式時,應考慮以下因素:
某些行動裝置和網關不支援 Cookie。若要使 ASP.NET 移動 Web 應用程式能夠在這些裝置上運行,Web 服務器必須將會話管理設定為無 Cookie 模式。
通過無 Cookie 會話管理採用的技術進行重新導向後,某些行動裝置在處理相對 URL 時存在問題。
例如,如果將一個 Openwave.com 瀏覽器發送到位於 http://localhost/a.aspx 的 .aspx 檔案,而且該 Web 網站將瀏覽器重新導向到 /12345678/a.apsx,瀏覽器仍會將其當前路徑當作根路徑。瀏覽器會將隨後對 b.aspx 的相對參照當作 /b.aspx 來請求。
此問題的解決辦法是在頁上包含帶根路徑的 URL(如 /12345678/a.aspx),而不是在重新導向之後進行呈現時的相對 URL。內建的 ASP.NET 行動控制項會自動執行此任務,但任何新編寫的控制項或適配器必須包括對重新導向之後的呈現進行處理的代碼。MobilePage 和適配器基類都具有相應的方法來協助行動控制項開發人員編寫帶根路徑的 URL。
使用重新導向
作為對 HTTP 重新導向的響應,某些裝置和瀏覽器目前需要全限定的 URL。在 Machine.config 檔案或 Web.config 檔案(應用程式級)的 System.Web 節中設定 useFullyQualifiedRedirectUrl=true。有關更多詳細資料,請參見重新導向到移動 Web 應用程式。
文法問題
ASP.NET 中的有效文法(例如 <%=)在 ASP.NET 行動控制項中無效,必須用資料繫結機制來替換。
資料繫結運算式必須用 <%# 和 %> 來分隔。下面是有關如何使用資料繫結運算式的樣本。
<%# binding expression code goes here %>