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> элементу конфигурации элемента (Network Параметры). Этот класс предоставляет программный доступ к информации, которая может храниться в файлах конфигурации.
UnescapeRequestUrlСвойство указывает HttpListener , использует ли необработанный неэкранированный универсальный код ресурса (URI) вместо преобразованного универсального кода ресурса (URI), в котором преобразуются все значения в процентах и выполняются другие действия нормализации.
Когда HttpListener экземпляр получает запрос через http.sys
службу, он создает экземпляр строки URI, предоставленной http.sys
, и предоставляет его в качестве HttpListenerRequest.Url Свойства.
http.sys
Служба предоставляет две строки URI запроса:
Необработанный URI
Преобразованный URI
Необработанный универсальный код ресурса (URI) указан System.Uri в строке запроса HTTP-запроса:
GET /path/
Host: www.contoso.com
Необработанный URI, предоставленный http.sys
для запроса, упомянутого выше, имеет значение "/Пас/". Представляет строку, следующую за 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 поддерживаются, а также символы Юникода (Кодировка Юникода с использованием формата% Укскскскс).
Выполняет другие шаги нормализации, например сжатие пути.
Поскольку запрос не содержит никаких сведений о кодировке, используемой для значений, закодированных в процентах, возможно, вам не удастся определить правильную кодировку путем анализа значений, закодированных в процентах.
Поэтому 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) |