Поделиться через


Веб-формы ASP.NET для мобильных устройств и совместимость с ASP.NET

Обновлен: Ноябрь 2007

При создании веб-форм ASP.NET для мобильных устройств можно использовать практически все функции ASP.NET. Однако вначале следует обратить внимание на вопросы совместимости.

Обработка ошибок и отчеты

Когда приложение ASP.NET при обработке запроса встречает необработанное исключение или другую ошибку, оно создает страницу ошибки. Исключения могут возникать при обработке запросов. Например, это может произойти при чтении файла конфигурации (Web.config), компиляции страницы или ее запуске.

Можно также настроить приложение на создание настраиваемых страниц ошибок или страниц по умолчанию. Если приложение настроено на использование страниц ошибок по умолчанию, то ASP.NET устанавливает в ответе код ошибки и отображает страницу с подробным описанием ошибки. Если приложение настроено на использование настраиваемых страниц ошибки, то каждый запрос ошибки перенаправляется на настраиваемую страницу, предоставляемую разработчиком.

Многие мобильные устройства не могут отображать подробное содержимое страницы ошибок. Вместо этого такие устройства обычно отображают только сообщение об ошибке для конкретного устройства или код ошибки. Для решения этой проблемы страницы веб-форм ASP.NET для мобильных устройств пытаются отформатировать страницу ошибки таким образом, чтобы отобразить ее в устройстве. Однако такая отрисовка для конкретных устройств возможна только для исключений, возникающих при выполнении страницы. Таким образом, если используются страницы ошибок по умолчанию, необходимо вначале попытаться открыть страницу мобильной веб-формы в обозревателе настольного компьютера, что позволит выявить возможные ошибки конфигурации и компиляции.

Если в веб-приложении ASP.NET планируется использовать настраиваемые страницы ошибок, ASP.NET может отформатировать страницу ошибок соответствующим образом для различных мобильных устройств, если при создании настраиваемых страниц используются мобильные элементы управления.

Дополнительные сведения о страницах ошибок в ASP.NET см. в документации свойства ErrorPage. Дополнительные сведения об управлении ошибками см. в разделе Управление адаптивной обработкой ошибок на веб-страницах ASP.NET для мобильных устройств.

Трассировка

ASP.NET предоставляет простую в использовании функцию трассировки. Эту функцию можно использовать для отладки веб-приложений. ASP.NET предоставляет два уровня трассировки: трассировка на уровне страницы и на уровне приложения. Трассировка на уровне страницы предоставляет информацию трассировки в качестве HTML-кода, прикрепленного к каждой странице трассировки, а трассировка на уровне приложения — через особым образом сопоставленный URL-адрес (Trace.axd) в приложении.

Если в мобильном веб-приложении ASP.NET используется трассировка, то HTML-код, прикрепленный к отрисовке страницы, может препятствовать визуализации страницы на мобильном устройстве. Вместо этого для мобильных веб-приложений ASP.NET необходимо использовать трассировку на уровне приложения и анализировать ее результаты в веб-обозревателе настольного компьютера.

Дополнительные сведения о возможностях трассировки в ASP.NET см. в разделе Общие сведения о трассировке ASP.NET.

ASP.NET предоставляет широкие возможности управления сеансами, которые позволяют легко сохранять их состояние в запросах. Обычно функция состояния сеанса ASP.NET использует в обозревателях файлы Cookie, но эту настройку можно изменить.

В ASP.NET объект Session можно использовать для сохранения информации о пользовательском сеансе в нескольких запросах. Управление сеансами в ASP.NET масштабируется и является достаточно мощным для использования этой функции даже в веб-фермах. Объект ASP.NET Session по умолчанию использует клиентские файлы Cookie для хранения идентификатора на компьютере клиента. Идентификатор можно использовать для поиска сеанса в круговых путях сервера. Кроме того, объект ASP.NET Session поддерживает режим сеанса без файлов Cookie, который изначально перенаправляет пользователя на новый URL-адрес, содержащий идентификатор сеанса. Идентификатор затем автоматически выделяется из URL-адреса.

При создании мобильных веб-приложений ASP.NET необходимо помнить, что некоторые мобильные устройства и беспроводные шлюзы не поддерживают файлы Cookie. Для добавлении поддержки этих устройств необходимо настроить приложение на использование сеансов без файлов Cookie.

Дополнительные сведения о возможностях управления сеансами ASP.NET см. в разделе Общие сведения об управлении состоянием ASP.NET.

Вопросы, связанные с использованием состояния сеанса

При создании мобильного веб-приложения ASP.NET, использующего состояние сеанса, обратите внимание на следующие факторы:

  • Использование элементов управления ASP.NET в пространстве имен System.Web.UI.WebControls на странице веб-формы ASP.NET для мобильных устройств не поддерживается. Страницы веб-форм, использующие пользовательские элементы управления для мобильных устройств в пространстве имен System.Web.UI.MobileControls, поддерживают задание атрибута EnableSessionState директивы @ Page в значение false. В то же время страницы мобильных веб-форм, использующие элементы управления ASP.NET из пространства имен System.Web.UI.WebControls с параметром EnableSessionState, равным false, могут привести к возникновению ошибки времени компиляции.

  • Некоторые мобильные устройства и шлюзы не поддерживают файлы Cookie. Чтобы разрешить странице веб-формы ASP.NET для мобильных устройств запуск на этих устройствах, установите атрибут cookielessэлемента sessionState в значение true.

  • Некоторые мобильные устройства с ошибками обрабатывают относительные URL-адреса после перенаправления с помощью методики управления сеансами без файлов Cookie.

    Например, если обозреватель Openwave открывает ASPX-файл по адресу https://localhost/a.aspx, а веб-узел перенаправляет обозреватель по адресу /12345678/a.apsx, то обозреватель будет рассматривать свой текущий путь как корневой. Обозреватель запросит последующую относительную ссылку для b.aspx как /b.aspx.

    Решением является включение корневого, а не относительного URL-адреса в страницу, например /12345678/a.aspx, при отрисовке после перенаправления. Встроенные элементы управления ASP.NET для мобильных устройств выполняют это автоматически, но все написанные заново элементы или адаптеры должны содержать код, обрабатывающий отрисовку после перенаправления. Объект MobilePage и базовые классы адаптеров содержат методы, помогающие разработчику мобильных элементов управления создавать корневые URL-адреса (например, MakePathAbsolute).

Использование перенаправлений

На сегодняшний день некоторые устройства и обозреватели требуют полные URL-адреса в качестве ответа на HTTP-перенаправление. Установите атрибут useFullQualifiedRedirectUrlэлемента httpRuntime в значение true в разделе System.Web файлов Machine.config или Web.config (на уровне приложения). Дополнительные сведения см. в разделе Перенаправление на веб-страницу ASP.NET для мобильных устройств.

Вопросы синтаксиса

Синтаксис, действительный для ASP.NET, например <%=, недействителен в элементах управления ASP.NET для мобильных устройств. Такой синтаксис необходимо заменять механизмами привязки данных.

Выражения привязки данных должны ограничиваться символами <%# и %>. Ниже приведен пример использования выражений привязки данных:

<%# binding expression code goes here %>

См. также

Основные понятия

Управление адаптивной обработкой ошибок на веб-страницах ASP.NET для мобильных устройств

Общие сведения о трассировке ASP.NET

Общие сведения об управлении состоянием ASP.NET

Перенаправление на веб-страницу ASP.NET для мобильных устройств

Ссылки

ErrorPage

Другие ресурсы

Приступая к работе с элементами управления ASP.NET для мобильных устройств