Condividi tramite


HttpListenerElement Classe

Definizione

Rappresenta l'elemento HttpListener nel file di configurazione. La classe non può essere ereditata.

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
Ereditarietà
HttpListenerElement

Commenti

Questa classe corrisponde all'elemento <di configurazione httpListener> Element (Network Settings). Questa classe fornisce l'accesso a livello di codice alle informazioni che possono essere archiviate nei file di configurazione.

La UnescapeRequestUrl proprietà indica se HttpListener utilizza l'URI non elaborato senza caratteri di escape anziché l'URI convertito in cui vengono convertiti valori con codifica percentuale e vengono eseguiti altri passaggi di normalizzazione.

Quando un'istanza HttpListener riceve una richiesta tramite il http.sys servizio, crea un'istanza della stringa URI fornita da http.syse la espone come HttpListenerRequest.Url proprietà .

Il http.sys servizio espone due stringhe URI di richiesta:

  • URI non elaborato

  • URI convertito

L'URI non elaborato è l'oggetto System.Uri fornito nella riga di richiesta di una richiesta HTTP:

GET /path/

Host: www.contoso.com

L'URI non elaborato fornito da http.sys per la richiesta menzionata in precedenza è "/path/". Rappresenta la stringa che segue il verbo HTTP inviato in rete.

Il http.sys servizio crea un URI convertito dalle informazioni fornite nella richiesta usando l'URI fornito nella riga di richiesta HTTP e l'intestazione Host per determinare il server di origine a cui deve essere inoltrata la richiesta. Questa operazione viene eseguita confrontando le informazioni della richiesta con un set di prefissi URI registrati. La documentazione di HTTP Server SDK fa riferimento a questo URI convertito come struttura HTTP_COOKED_URL .

Per poter confrontare la richiesta con i prefissi URI registrati, è necessario eseguire una normalizzazione alla richiesta. Per l'esempio precedente l'URI convertito sarà il seguente:

http://www.contoso.com/path/

Il http.sys servizio combina il valore della Uri.Host proprietà e la stringa nella riga della richiesta per creare un URI convertito. Inoltre, http.sys e la System.Uri classe eseguono anche le operazioni seguenti:

  • Annulla l'escape di tutti i valori codificati in percentuale.

  • Converte i caratteri non ASCII con codifica percentuale in una rappresentazione di caratteri UTF-16. Si noti che i caratteri UTF-8 e ANSI/DBCS sono supportati e i caratteri Unicode (codifica Unicode usando il formato %uXXXX).

  • Esegue altri passaggi di normalizzazione, ad esempio la compressione del percorso.

Poiché la richiesta non contiene informazioni sulla codifica usata per i valori con codifica percentuale, potrebbe non essere possibile determinare la codifica corretta semplicemente analizzando i valori con codifica percentuale.

Vengono pertanto http.sys fornite due chiavi del Registro di sistema per modificare il processo:

Chiave del Registro di sistema Valore predefinito Descrizione
EnableNonUTF8 1 Se zero, http.sys accetta solo GLI URL con codifica UTF-8.

Se diverso da zero, http.sys accetta anche URL con codifica ANSI o con codifica DBCS nelle richieste.
FavorUTF8 1 Se non è zero, http.sys tenta sempre di decodificare un URL come UTF-8. Se la conversione ha esito negativo e EnableNonUTF8 è diverso da zero, Http.sys quindi prova a decodificarla come ANSI o DBCS.

Se zero (e EnableNonUTF8 è diverso da zero), http.sys tenta di decodificarlo come ANSI o DBCS. In caso contrario, prova una conversione UTF-8.

Quando HttpListener riceve una richiesta, usa l'URI convertito da http.sys come input alla Url proprietà .

È necessario supportare caratteri oltre a caratteri e numeri negli URI. Un esempio è l'URI seguente, che viene usato per recuperare le informazioni sul cliente per il numero cliente "1/3812":

http://www.contoso.com/Customer('1%2F3812')/

Si noti la barra con codifica percentuale nell'URI (%2F). Ciò è necessario, poiché in questo caso il carattere barra rappresenta i dati e non un delimitatore di percorso.

Il passaggio della stringa al costruttore URI comporterà l'URI seguente:

http://www.contoso.com/Customer('1/3812')/

La suddivisione del percorso nei segmenti comporta gli elementi seguenti:

Customer('1

3812')

Questa non è la finalità del mittente della richiesta.

Se la UnescapeRequestUrl proprietà è impostata su false, quando riceve HttpListener una richiesta, usa l'URI non elaborato anziché l'URI convertito da http.sys come input alla Url proprietà .

Costruttori

HttpListenerElement()

Inizializza una nuova istanza della classe HttpListenerElement.

Proprietà

CurrentConfiguration

Ottiene un riferimento all'istanza di Configuration di livello superiore che rappresenta la gerarchia di configurazione cui appartiene l'istanza corrente di ConfigurationElement.

(Ereditato da ConfigurationElement)
ElementInformation

Ottiene un oggetto ElementInformation contenente le funzionalità e le informazioni non personalizzabili dell'oggetto ConfigurationElement.

(Ereditato da ConfigurationElement)
ElementProperty

Ottiene l'oggetto ConfigurationElementProperty che rappresenta l'oggetto ConfigurationElement stesso.

(Ereditato da ConfigurationElement)
EvaluationContext

Ottiene l'oggetto ContextInformation per l'oggetto ConfigurationElement.

(Ereditato da ConfigurationElement)
HasContext

Ottiene un valore che indica se la proprietà CurrentConfiguration è null.

(Ereditato da ConfigurationElement)
Item[ConfigurationProperty]

Ottiene o imposta una proprietà o un attributo di questo elemento di configurazione.

(Ereditato da ConfigurationElement)
Item[String]

Ottiene o imposta una proprietà, un attributo o un elemento figlio di questo elemento di configurazione.

(Ereditato da ConfigurationElement)
LockAllAttributesExcept

Ottiene l'insieme di attributi bloccati.

(Ereditato da ConfigurationElement)
LockAllElementsExcept

Ottiene l'insieme di elementi bloccati.

(Ereditato da ConfigurationElement)
LockAttributes

Ottiene l'insieme di attributi bloccati.

(Ereditato da ConfigurationElement)
LockElements

Ottiene l'insieme di elementi bloccati.

(Ereditato da ConfigurationElement)
LockItem

Ottiene o imposta un valore che indica se l'elemento è bloccato.

(Ereditato da ConfigurationElement)
Properties

Ottiene la raccolta di proprietà.

(Ereditato da ConfigurationElement)
Timeouts

Ottiene gli elementi di timeout predefinito utilizzati per un oggetto HttpListener.

UnescapeRequestUrl

Ottiene un valore che indica se HttpListener utilizza l'URI senza codice di escape non elaborato anziché l'URI convertito.

Metodi

DeserializeElement(XmlReader, Boolean)

Legge il codice XML dal file di configurazione.

(Ereditato da ConfigurationElement)
Equals(Object)

Confronta l'istanza corrente di ConfigurationElement con l'oggetto specificato.

(Ereditato da ConfigurationElement)
GetHashCode()

Ottiene un valore univoco che rappresenta l'istanza corrente di ConfigurationElement.

(Ereditato da ConfigurationElement)
GetTransformedAssemblyString(String)

Restituisce la versione trasformata del nome di assembly specificato.

(Ereditato da ConfigurationElement)
GetTransformedTypeString(String)

Restituisce la versione trasformata del nome del tipo specificato.

(Ereditato da ConfigurationElement)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
Init()

Ripristina lo stato iniziale dell'oggetto ConfigurationElement.

(Ereditato da ConfigurationElement)
InitializeDefault()

Da utilizzare per inizializzare un insieme predefinito di valori per l'oggetto ConfigurationElement.

(Ereditato da ConfigurationElement)
IsModified()

Indica se questo elemento di configurazione è stato modificato dopo l'ultimo salvataggio o caricamento durante l'implementazione in una classe derivata.

(Ereditato da ConfigurationElement)
IsReadOnly()

Ottiene un valore che indica se l'oggetto ConfigurationElement è di sola lettura.

(Ereditato da ConfigurationElement)
ListErrors(IList)

Aggiunge all'elenco passato gli errori di proprietà non valida di questo oggetto ConfigurationElement e di tutti i sottoelementi.

(Ereditato da ConfigurationElement)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
OnDeserializeUnrecognizedAttribute(String, String)

Ottiene un valore che indica se viene incontrato un attributo sconosciuto durante la deserializzazione.

(Ereditato da ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

Ottiene un valore che indica se viene incontrato un attributo sconosciuto durante la deserializzazione.

(Ereditato da ConfigurationElement)
OnRequiredPropertyNotFound(String)

Genera un'eccezione quando una proprietà obbligatoria non viene trovata.

(Ereditato da ConfigurationElement)
PostDeserialize()

Da chiamare dopo la deserializzazione.

(Ereditato da ConfigurationElement)
PreSerialize(XmlWriter)

Da chiamare prima della serializzazione.

(Ereditato da ConfigurationElement)
Reset(ConfigurationElement)

Reimposta lo stato interno dell'oggetto ConfigurationElement, inclusi i blocchi e le raccolte di proprietà.

(Ereditato da ConfigurationElement)
ResetModified()

Reimposta il valore del metodo IsModified() su false quando viene implementato in una classe derivata.

(Ereditato da ConfigurationElement)
SerializeElement(XmlWriter, Boolean)

Scrive il contenuto di questo elemento di configurazione nel file di configurazione in caso di implementazione in una classe derivata.

(Ereditato da ConfigurationElement)
SerializeToXmlElement(XmlWriter, String)

Scrive i tag esterni di questo elemento di configurazione nel file di configurazione in caso di implementazione in una classe derivata.

(Ereditato da ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

Imposta una proprietà sul valore specificato.

(Ereditato da ConfigurationElement)
SetReadOnly()

Imposta la proprietà IsReadOnly() per l'oggetto ConfigurationElement e tutti i sottoelementi.

(Ereditato da ConfigurationElement)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

Modifica l'oggetto ConfigurationElement in modo da rimuovere tutti i valori che non devono essere salvati.

(Ereditato da ConfigurationElement)

Si applica a

Vedi anche