HttpListenerElement Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Представляет элемент HttpListener в файле конфигурации. Этот класс не наследуется.
public ref class HttpListenerElement sealed : System::Configuration::ConfigurationElement
public sealed class HttpListenerElement : System.Configuration.ConfigurationElement
type HttpListenerElement = class
inherit ConfigurationElement
Public NotInheritable Class HttpListenerElement
Inherits ConfigurationElement
- Наследование
Комментарии
Этот класс соответствует элементу конфигурации <httpListener> Element (Network Settings). Этот класс предоставляет программный доступ к сведениям, которые могут храниться в файлах конфигурации.
Свойство UnescapeRequestUrl указывает, использует ли HttpListener необработанный неэкранированный URI вместо преобразованного URI, в котором преобразуются значения в процентах и выполняются другие шаги нормализации.
HttpListener Когда экземпляр получает запрос через http.sys
службу, он создает экземпляр строки URI, предоставленной http.sys
, и предоставляет его в качестве HttpListenerRequest.Url свойства .
Служба http.sys
предоставляет две строки URI запроса:
Необработанный URI
Преобразованный URI
Необработанный универсальный System.Uri код ресурса (URI) — это указанный в строке запроса HTTP-запроса:
GET /path/
Host: www.contoso.com
Необработанный универсальный код ресурса (URI), предоставленный http.sys
для упомянутого выше запроса, — "/path/". Представляет строку, следующую за HTTP-командой, когда она была отправлена по сети.
Служба http.sys
создает преобразованный URI на основе информации, предоставленной в запросе, с помощью URI, предоставленного в строке HTTP-запроса, и заголовка Узла для определения исходного сервера, на который должен быть переадресован запрос. Для этого сравнивается информация из запроса с набором зарегистрированных префиксов URI. В документации по пакету SDK ДЛЯ HTTP-сервера этот преобразованный URI называется структурой HTTP_COOKED_URL .
Чтобы иметь возможность сравнивать запрос с зарегистрированными префиксами URI, необходимо выполнить некоторую нормализацию запроса. Для примера выше преобразованный универсальный код ресурса (URI) будет следующим:
http://www.contoso.com/path/
Служба http.sys
объединяет Uri.Host значение свойства и строку в строке запроса для создания преобразованного URI. Кроме того, http.sys
класс System.Uri также выполняет следующие действия:
Отменяет экранирование всех значений в процентах.
Преобразует символы в процентах, отличные от ASCII, в представление символов UTF-16. Обратите внимание, что поддерживаются символы UTF-8 и ANSI/DBCS, а также символы Юникода (кодировка Юникода в формате %uXXXX).
Выполняет другие шаги нормализации, например сжатие пути.
Так как запрос не содержит сведений о кодировке, используемой для значений в процентах, определить правильную кодировку только путем анализа значений в процентах может быть невозможно.
Поэтому http.sys
предоставляет два раздела реестра для изменения процесса:
Ключ реестра | Значение по умолчанию | Описание |
---|---|---|
EnableNonUTF8 | 1 | Если значение равно нулю, http.sys принимает только URL-адреса в кодировке UTF-8.Если значение не равно нулю, http.sys также принимает URL-адреса в кодировке ANSI или DBCS в запросах. |
FavorUTF8 | 1 | Если значение не равно нулю, http.sys всегда сначала пытается декодировать URL-адрес как UTF-8. Если преобразование завершается сбоем и enableNonUTF8 не равно нулю, Http.sys затем пытается декодировать его как ANSI или DBCS.Если значение равно нулю (а EnableNonUTF8 не равно нулю), http.sys пытается декодировать его как ANSI или DBCS; если это не удалось, выполняется преобразование UTF-8. |
При HttpListener получении запроса он использует преобразованный универсальный код ресурса (URI) из в http.sys
качестве входных данных в Url свойство .
Кроме символов и чисел в URI необходимо использовать вспомогательные символы. Примером является следующий универсальный код ресурса (URI), который используется для получения сведений о клиенте по номеру клиента "1/3812":
http://www.contoso.com/Customer('1%2F3812')/
Обратите внимание на косую черту, закодированную в процентах, в URI (%2F). Это необходимо, так как в этом случае символ косой черты представляет данные, а не разделитель пути.
Передача строки в конструктор URI приведет к следующему URI:
http://www.contoso.com/Customer('1/3812')/
Разделение пути на его сегменты приведет к созданию следующих элементов:
Customer('1
3812')
Это не является намерением отправителя запроса.
Если свойству UnescapeRequestUrl присвоено значение false, то при HttpListener получении запроса он использует необработанный универсальный код ресурса (URI) вместо преобразованного URI из в http.sys
качестве входных данных в Url свойство .
Конструкторы
HttpListenerElement() |
Инициализирует новый экземпляр класса HttpListenerElement. |
Свойства
CurrentConfiguration |
Возвращает ссылку на экземпляр Configuration верхнего уровня, представляющий иерархию конфигурации, к которой относится текущий экземпляр ConfigurationElement. (Унаследовано от ConfigurationElement) |
ElementInformation |
Возвращает объект ElementInformation, содержащий неизменяемую информацию и функциональность объекта ConfigurationElement. (Унаследовано от ConfigurationElement) |
ElementProperty |
Возвращает объект ConfigurationElementProperty, представляющий сам объект ConfigurationElement. (Унаследовано от ConfigurationElement) |
EvaluationContext |
Возвращает объект ContextInformation для объекта ConfigurationElement. (Унаследовано от ConfigurationElement) |
HasContext |
Возвращает значение, указывающее, имеет ли свойство CurrentConfiguration значение |
Item[ConfigurationProperty] |
Возвращает или задает свойство или атрибут данного элемента конфигурации. (Унаследовано от ConfigurationElement) |
Item[String] |
Получает или задает свойство, атрибут или дочерний элемент данного элемента конфигурации. (Унаследовано от ConfigurationElement) |
LockAllAttributesExcept |
Возвращает коллекцию заблокированных атрибутов. (Унаследовано от ConfigurationElement) |
LockAllElementsExcept |
Возвращает коллекцию заблокированных элементов. (Унаследовано от ConfigurationElement) |
LockAttributes |
Возвращает коллекцию заблокированных атрибутов. (Унаследовано от ConfigurationElement) |
LockElements |
Возвращает коллекцию заблокированных элементов. (Унаследовано от ConfigurationElement) |
LockItem |
Возвращает или задает значение, указывающее, заблокирован ли элемент. (Унаследовано от ConfigurationElement) |
Properties |
Возвращает коллекцию свойств. (Унаследовано от ConfigurationElement) |
Timeouts |
Получает Элементы времени ожидания по умолчанию, используемые для объекта HttpListener. |
UnescapeRequestUrl |
Получает значение, определяющее, использует ли HttpListener не преобразованный в escape-последовательность URI вместо преобразованного. |
Методы
DeserializeElement(XmlReader, Boolean) |
Считывает XML из файла конфигурации. (Унаследовано от ConfigurationElement) |
Equals(Object) |
Сравнивает текущий экземпляр ConfigurationElement с указанным объектом. (Унаследовано от ConfigurationElement) |
GetHashCode() |
Получает уникальное значение, представляющее текущий экземпляр ConfigurationElement. (Унаследовано от ConfigurationElement) |
GetTransformedAssemblyString(String) |
Возвращает преобразованную версию указанного имени сборки. (Унаследовано от ConfigurationElement) |
GetTransformedTypeString(String) |
Возвращает преобразованную версию указанного имени типа. (Унаследовано от ConfigurationElement) |
GetType() |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Init() |
Задает объект ConfigurationElement в исходное состояние. (Унаследовано от ConfigurationElement) |
InitializeDefault() |
Используется для инициализации набора значений по умолчанию для объекта ConfigurationElement. (Унаследовано от ConfigurationElement) |
IsModified() |
При реализации в производном классе указывает, был ли изменен данный элемент конфигурации с момента последнего сохранения или загрузки. (Унаследовано от ConfigurationElement) |
IsReadOnly() |
Получает значение, показывающее, является ли объект ConfigurationElement доступным только для чтения. (Унаследовано от ConfigurationElement) |
ListErrors(IList) |
Добавляет ошибку "недействительное свойство" в данном объекте ConfigurationElement и всех его дочерних элементах к переданному списку. (Унаследовано от ConfigurationElement) |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
OnDeserializeUnrecognizedAttribute(String, String) |
Возвращает значение, указывающее, встретился ли неизвестный атрибут при десериализации. (Унаследовано от ConfigurationElement) |
OnDeserializeUnrecognizedElement(String, XmlReader) |
Возвращает значение, указывающее, встретился ли неизвестный элемент при десериализации. (Унаследовано от ConfigurationElement) |
OnRequiredPropertyNotFound(String) |
Выдает исключение, если требуемое свойство не найдено. (Унаследовано от ConfigurationElement) |
PostDeserialize() |
Вызывается после десериализации. (Унаследовано от ConfigurationElement) |
PreSerialize(XmlWriter) |
Вызывается до сериализации. (Унаследовано от ConfigurationElement) |
Reset(ConfigurationElement) |
Восстанавливает внутреннее состояние объекта ConfigurationElement, включая блокировки и коллекции свойств. (Унаследовано от ConfigurationElement) |
ResetModified() |
Переустанавливает значение метода IsModified() в |
SerializeElement(XmlWriter, Boolean) |
Записывает содержание данного элемента конфигурации в файл конфигурации при реализации в производном классе. (Унаследовано от ConfigurationElement) |
SerializeToXmlElement(XmlWriter, String) |
Записывает внешние теги данного элемента конфигурации в файл конфигурации при реализации в производном классе. (Унаследовано от ConfigurationElement) |
SetPropertyValue(ConfigurationProperty, Object, Boolean) |
Задает для свойства указанное значение. (Унаследовано от ConfigurationElement) |
SetReadOnly() |
Задает свойство IsReadOnly() для объекта ConfigurationElement и всех подчиненных элементов. (Унаследовано от ConfigurationElement) |
ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode) |
Изменяет объект ConfigurationElement для удаления всех значений, которые не должны сохраняться. (Унаследовано от ConfigurationElement) |