В начале года получил код dreamspark H4RQ9-QJ6FD-YJWJT-P6FVF-HGXQZ. При его вводе- сообщение что он просрочен.
|
Настроечные параметры System.Web
Ключевые моменты <compilation>
Раздел компиляции включает важные параметры для оптимизации компиляции страниц ASP.NET. Ниже приведены ключевые моменты, связанные с работой в разделе <compilation>.
- Свойства strict и explicit элемента <compiler> позволяют установить в значение true опции Visual Basic strict и explicit для всех ваших файлов ASP.NET.
- Пакетная компиляция помогает сделать работу пользователя более "гладкой", позволяя скомпилировать еще не откомпилированные страницы ASP.NET при первом доступе к одной из них.
- Элемент <compiler> позволяет добавлять языки (даже COBOL.NET!) для программирования ASP.NET.
- Раздел <assemblies> позволяет добавлять сборки, подключаемые при компиляции страниц ASP.NET.
Работа с разделом <customErrors>
Раздел <customErrors> позволяет управлять сообщениями об ошибках, выводимыми пользователям. Это очень важный шаг при разработке дружественных к пользователю приложений. Имеется два типа ошибок, возвращаемых пользователям.
- Ошибки HTTP. Ошибки HTTP генерируются по нескольким причинам, включая отсутствие запрашиваемой страницы (404) или отсутствие прав доступа к запрашиваемой странице (403).
- Ошибки кода. Ошибки в вашем коде могут возникнуть из-за проблем с подключением к базе данных, неверным преобразованием типов данных или какой-либо недопустимой процедурой.
По умолчанию оба типа ошибок выдают пользователям отвратительные сообщения об ошибках. Это вопрос не только эстетический, но также и вопрос безопасности, так как сообщение об ошибке может включать информацию об имени пользователя или пароле. Элемент <customErrors> имеет два свойства: свойство mode и свойство defaultRedirect. Ниже приведен синтаксис элемента <customErrors>.
<customErrors mode="On" defaultRedirect="customerror.aspx"> </customErrors>
Свойство mode определяет, когда должны отображаться "дружественные" сообщения об ошибках, а когда – настоящие. Таблица 4.7 содержит список возможных значений свойства mode.
Значение | Описание |
---|---|
On | Разрешает настройку ошибок. Если не указана страница defaultRedirect, пользователям представляется стандартное сообщение об ошибке. Стандартное сообщение не определяет причину ошибки, а только отражает сам факт ее возникновения. (Сообщение об ошибке большое и желтое; позже вы узнаете, как изменить его внешний вид.) |
Off | Отключает настройку ошибок. В этом случае пользователи при возникновении ошибки увидят полное сообщение об ошибке. Хотя это нежелательно при регулярном использовании вашего приложения, такая информация неоценима на этапах разработки и отладки. |
RemoteOnly | Является комбинацией двух предыдущих значений: параметр RemoteOnly представляет полное детализированное сообщение об ошибке, когда доступ к приложению осуществляется с системы, на которой оно размещено, а при доступе к нему с других систем отображает дружественное сообщение об ошибке. Если вы занимаетесь разработкой на той же машине, на которой расположено ваше приложение, это значение будет очень полезным, так как оно не потребует внесения изменений, когда вы перейдете от разработки к эксплуатации. |
Когда приложение находится на стадии разработки, вы захотите видеть полные сообщения об ошибках, так что установите режим в значение Off или RemoteOnly. Когда начинается регулярная эксплуатация приложения, важно установить режим в значение On или RemoteOnly, так что пользователи не увидят подробных сообщений об ошибках.
При установке режима в значение RemoteOnly или Off пользователь видит стандартное сообщение об ошибке (большую отвратительную желтую страницу). Было бы здорово иметь возможность настраивать это стандартное сообщение и, возможно, включать в него логотип компании или информацию о технической поддержке. Свойство defaultRedirect используется для отображения стандартного сообщения об ошибке со страницы, отличной от страницы по умолчанию. Таким образом, вы можете создать для своего приложения собственное сообщение об ошибке, а затем указать URL этой страницы в свойстве defaultRedirect элемента <customErrors>, например:
<customErrors mode="On" defaultRedirect="customerror.aspx"> </customErrors>
При возникновении в приложении ошибки пользователь вместо подробного или стандартного сообщения об ошибке увидит customerror.aspx.
Настройка сообщений об ошибках HTTP
Можно еще больше поработать над сообщением об ошибке, используя элемент <error> для перенаправления отдельных ошибок HTTP на собственные страницы ошибок. Элемент <error> позволяет указать конкретный код ошибки HTTP и страницу, на которую будут перенаправляться пользователи. Ниже приведен синтаксис элемента <error>.
<customErrors mode="On" defaultRedirect="customerror.aspx"> <error statusCode="HTTP status code" redirect="httperror.aspx" /> </customErrors>
Таблица 4.8 содержит перечень свойств элемента <error>.
Элемент <error> позволяет настроить сообщения об ошибках для каждого типа кодов HTTP. Например, можно создать различные сообщения об ошибках для кодов ошибок 404 и 403. Для кода ошибки 404 можно отображать сообщение, содержащее метод поиска страницы, которая не найдена. Для кода ошибки 403, скорее всего, следует предоставить пользователю информацию о регистрации в системе или способе получения информации о забытом пароле.
![](00_04.jpg)
Ключевые моменты <customErrors>
Раздел <customErrors> позволяет настраивать сообщения об ошибках, которые отправляются пользователям.
- Свойство mode элемента <customErrors> позволяет указать тип ошибок, отображаемым пользователям.
- Свойство defaultRedirect позволяет указать собственную страницу ошибки, на которую пользователи перенаправляются при ее возникновении.
- Элемент <error> позволяет широко настраивать сообщения об ошибках, указывая собственные страницы ошибок для конкретных кодов ошибок.
Работа с разделом <globalization>
ASP.NET имеет возможность обрабатывать запросы, ответы и файлы, используя для этого различные методы кодирования символов (кодировок). Раздел <globalization> позволяет указать тип кодировки и культуру для различных операций ASP.NET. Ниже приведен синтаксис раздела <globalization>.
<globalization requestEncoding="encoding type" responseEncoding="encoding type" fileEncoding="encoding type" culture="culture value" uiCulture="culture value" />
Таблица 4.9 содержит перечень свойств раздела <globalization>.
Ниже показан пример раздела <globalization>.
<globalization requestEncoding="utf-8" responseEncoding="utf-8" fileEncoding="utf-8" culture="en-us" uiCulture="en-us" />
Данная запись устанавливает кодировки запросов, ответов и файлов в значение UTF-8, а культуру – в значение English.
![](00_03.jpg)
Ключевые моменты <globalization>
Глобализация играет важную роль в разработке приложений для содержащего множество культур интернет-сообщества.
- Можно задать тип кодировки запросов, ответов и файлов ASP.NET, используя свойства элемента <globalization>.
- Можно задать культуру веб-запросов, используя свойство culture элемента <globalization>.
Работа с разделом <httpHandlers>
Обработчики HTTP – это классы, которые обрабатывают HTTP-запросы для конкретного расширения файла, почти как расширения ISAPI. Обработчики HTTP существуют для aspx, .asmx, .rem и многих других расширений файлов ASP.NET по умолчанию. Раздел <httpHandlers> на основе действия HTTP, расширения файла и URL ресурса ставит в соответствие запросам HTTP корректный обработчик HTTP. Раздел <httpHandlers> – это еще один основанный на коллекции раздел, то есть в него можно добавлять и удалять элементы, очищать весь раздел полностью. Ниже приведен синтаксис добавления в раздел <httpHandlers> соответствий обработчиков HTTP.
<httpHandlers> <add verb="http verb list" path="url path" type="handler class" validate="true|false" /> </httpHandlers>
Таблица 4.10 содержит перечень свойств раздела <httpHandlers>.
Ниже показан пример соответствия обработчика .aspx.
<httpHandlers> <add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" /> </httpHandlers>
Когда с помощью одного из действий HTTP выполняется запрос к странице с расширением .aspx, страница обрабатывается обработчиком HTTP System.Web.UI.PageHandlerFactory. Удалить соответствие обработчика HTTP можно так:
<httpHandlers> <remove verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" /> </httpHandlers>
Для сброса всех соответствий обработчиков, добавленных в предыдущие настроечные файлы, используется популярный элемент <clear />.
<httpHandlers> <clear /> </httpHandlers>
Теперь давайте рассмотрим, как создавать собственный обработчик HTTP для нового типа расширений.
Создание собственного обработчика HTTP
ASP.NET облегчает создание собственных обработчиков HTTP, которые могут обрабатывать запросы для собственных расширений файлов или путей файлов. В этом разделе вы научитесь создавать простой обработчик HTTP и поставите его в соответствие новому расширению .asbx. Имеется три типа обработчиков HTTP: синхронные, асинхронные и фабрики обработчиков. Синхронный обработчик обрабатывает весь запрос перед отправкой результатов пользователю. Асинхронный обработчик обрабатывает длинные запросы и позволяет отправлять информацию к пользователю на различных этапах обработки запроса. Фабрика обработчиков HTTP генерирует несколько обработчиков в зависимости от запроса. Файлы .aspx обрабатываются обработчиком из фабрики обработчиков HTTP, так что каждый запрос может быть передан в класс страницы для каждого файла. Класс страницы реализует интерфейс IHttpHandler и является обработчиком для каждой страницы.
Собственный обработчик HTTP – это класс .NET, который реализует либо интерфейс IHttpHandler, либо интерфейс IHttpAsyncHandler. Первым шагом при создании обработчика является объявление обработчика и реализации его интерфейса.
C#
using System.Web; public class asbxHandler : IHttpHandler { }
VB.NET
Imports System.Web Public Class asbxHandler Implements IHttpHandler End Class
При реализации интерфейса IHttpHandler следует включить метод ProcessRequest и свойство IsReusable. Если запрос HTTP связан с обработчиком HTTP, он вызывает метод ProcessRequest и передает в него текущий контекст HTTP. Затем можно использовать объект контекста HTTP либо для чтения из запроса, либо для записи ответа.
C#
using System.Web; public class asbxHandler : IHttpHandler { public void ProcessRequest(HttpContext currentContext) { HttpResponse currentResponse = currentContext.Response; currentResponse.Write("<html><body>"); currentResponse.Write("You have accessed an .asbx file"); currentResponse.Write("</body></html>"); } }
VB.NET
Imports System.Web Public Class asbxHandler Implements IHttpHandler Public Sub ProcessRequest(ByVal currentContext as HttpContext) _ Implements IHttpHandler Dim currentResponse As HttpResponse = currentContext.Response currentResponse.Write("<html><body>") currentResponse.Write("You have accessed an .asbx file") currentResponse.Write("</body></html>") End Sub End Class
Это очень простой метод ProcessRequest – он просто записывает через текущий контекст HTTP с помощью популярного метода Write короткое сообщение для пользователя. Когда пользователь пытается получить доступ к файлу .asbx, расположенному на сервере, вызывается этот обработчик, который отправляет пользователю простое сообщение. Прежде чем обработчик начнет работать, следует реализовать свойство IsReusable. Оно определяет, будет ли обработчик сохраняться в памяти для повторного использования или будет удаляться и воссоздаваться при последующем обращении к нему. Ниже приведен код, который требуется для реализации свойства IsReusable.
C#
using System.Web; public class asbxHandler : IHttpHandler { public bool IsReusable { get{return false;} } }
VB.NET
Imports System.Web Public Class asbxHandler Implements IHttpHandler Public ReadOnly Property IsReusable() As Boolean Implements _ IHttpHandler.IsReusable Get Return False End Get End Property End Class
Возвращение значения false означает, что обработчики не сохраняются в памяти, а вместо этого удаляются после обработки запроса. Обработчик готов, но вам требуется зарегистрировать его в настроечном файле; также следует зарегистрировать расширение в IIS.