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


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> 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 значение 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)

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

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