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
Наследование
HttpListenerElement

Комментарии

этот класс соответствует <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 значение null.

(Унаследовано от ConfigurationElement)
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() в false при реализации в производном классе.

(Унаследовано от ConfigurationElement)
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)

Применяется к

См. также раздел