HttpSysServerChannel Class

This is a Library topic for RemObjects SDK for .NET
This page is generated from external data, please do not update
Namespaces — Interfaces — Classes — Enums — Implements
Contents |
Overview
This is a simple HTTP server channel. It is based on http.sys and the .NET wrapper classes. http.sys is a kernel level HTTP stack provided by Microsoft, available in Windows starting from XP SP2. It provides the basic HTTP functionality for IIS on these systems, and has several advantages:
- The bulk of the core HTTP processing is done on kernel level, which makes it faster and more reliable.
- It allows RO standalone .exe servers to benefit of all the work and finetuning Microsoft puts into this kernel driver, without needing to run (or even install) IIS itself.
- It lets your RO standalone .exe server share the same port with IIS (or other services using http.sys, such as SQL Server 2005), simply by providing a unique domain name. Similar to how IIS allows you to set up virtual sites on the same ip/port combination by using HTTP/1.1's Host field, RO servers can now participate in this. You can for example have IIS listening on http://www.yourdomain.com, and your standalone RO server on http://services.yourdomain.com on the same IP address. http.sys will automatically direct each request to the proper server application.
To set up the channel, open the Bindings property editor and specify one or more hostname/port combinations. Make sure they do not conflict with any you have set up in IIS (for example, you cannot use the same host and port in both). Also remember that this channel requires XPSP2 or a newer operating system.
In addition to sharing a port/ip combo with IIS or other servers provided by Microsoft, you can of course also use it to run several independent RO servers on different domain names on the same server.
Warning: The application using this server channel must be launched with administrative privileges. Otherwise servicing requests from outside the local host is impossible due to Microsoft's restrictions.
Note: You can use SSL encryption with this channel. For more details, see the RemObjects SDK FAQ.
Location
- Assembly: RemObjects.SDK.Server.dll
- Namespace: RemObjects.SDK.Server
- Ancestry: System.ComponentModel.Component | Channel | ServerChannel | HttpServerChannel | HttpSysServerChannel
Constants
| DEFAULT_SERVER_NAME protected (declared in HttpServerChannel) |
|---|
|
|
Properties
| Active (declared in ServerChannel) |
|---|
|
Toggles whether the server component is active or not. Set it to true (either from code or in the Property Pane) to have your server active and listening for requests from clients or set it to false to prevent new requests from being accepted.
|
| Bindings |
|
Collection of HttpSysBinding instances. Each HttpSysBinding defines the domain name/port pair the server channel should listen to. Note: After a channel is opened, you can still change any available properties of HttpSysBinding instances, but these changes will not take effect until the server channel is reopened.
|
| ChannelType (declared in HttpServerChannel) |
|
Returns 'http'. This property is used by the ZeroConf infrastructure.
|
| CustomParameters (declared in ServerChannel) |
|
|
| Dispatchers (declared in ServerChannel) |
|
Organizes the different Dispatchers configured for the server. Depending on the server type, different dispatchers can be made accessible through different names (for example the HTTP based servers use the Path provided with the HTTP request to determine the dispatcher) or the dispatcher marked as Default will be used. Note: A design time editor for the Dispatcher collection is provided in the IDE, which you can invoke by clicking the ellipsis (...) button in the Properties Pane. You can use this editor to create new MessageDispatcher instances at design time and link them to the specific message components you have dropped onto your form.
|
| ExtendedDispatchers (declared in HttpServerChannel) |
|
|
| HasAfterReceiveStream protected (declared in Channel) |
|
|
| HasBeforeSendStream protected (declared in Channel) |
|
|
| Initializing protected (declared in ServerChannel) |
|
|
| Listener |
|
The underlying HttpListener object that is used by server channel. You can use this property to finetune HttpListener properties.
|
| Messages (declared in ServerChannel) |
|
|
| SecurityOptions (declared in HttpServerChannel) |
|
Gives access to server security options of this server channel instance. Using this property, you can set up MaxRequestSize, MaxRequestTime etc.
|
| SendClientAccessPolicyXml (declared in HttpServerChannel) |
|
Determines how the server channel should handle requests for clientaccesspolicy.xml (security policy file used by Silverlight). Can be set to:
|
| SendCrossOriginHeader (declared in HttpServerChannel) |
|
|
| SendExceptionsAs500 (declared in HttpServerChannel) |
|
If set to true, messages about exceptions occurred on the server will be sent with a HTTP Error 500 header set (standard HTTP header for internal server errors).
|
| ServeInfoPage (declared in HttpServerChannel) |
|
Determines if the server info page should be served or not
|
| ServerName |
|
The server name, which is exposed via HTTP response's header properties.
|
| ServeRodl (declared in ServerChannel) |
|
Toggles whether clients can request the RODL file for this server via IRodlAccess or channel-specific means (such as by submitting a HTTP GET request to an HTTP server). By default, this option is turned on; set this property to false if you want to prevent clients from retrieving the RODL file from the server.
|
Instance Methods
| constructor () |
|---|
|
Creates a new instance of the HttpSysServerChannel class.
|
| constructor (Boolean) protected (declared in HttpServerChannel) |
|
|
| constructor (IContainer) |
|
|
| Activate (declared in ServerChannel) |
|
Alias for the Open method.
|
| Close (declared in ServerChannel) |
|
Closes the ServerChannel component and stops it from accepting any more incoming requests.
|
| CopyProperties protected (declared in Channel) |
|
|
| Deactivate (declared in ServerChannel) |
|
Alias for the Close method.
|
| Dispatch protected (declared in ServerChannel) |
|
|
| Dispose protected (declared in HttpServerChannel) |
|
|
| DoClose protected |
|
This method cannot be called directly. This method is called when the channel is closed. It performs cleanup actions for the server channel.
|
| DoEndInit protected (declared in ServerChannel) |
|
|
| DoOpen protected |
|
This method cannot be called directly. It is called when the server channel is open and performs initialization actions for the server channel.
|
| Open (declared in ServerChannel) |
|
Opens the ServerChannel component and starts accepting incoming requests. Depending on the server type, this usually involves starting to listen on a network socket or polling some source for waiting messages.
|
| ProcessRequest |
|
This is basically the core of the entire server channel. This method processes incoming HTTP requests and performs requested actions (service method call, RODL request etc).
|
| Register (declared in HttpServerChannel) |
|
|
| StartListening (declared in ServerChannel) |
|
Alias for the Open method.
|
| StopListening (declared in ServerChannel) |
|
Alias for the Close method.
|
| TriggerAfterClose protected (declared in ServerChannel) |
|
|
| TriggerAfterOpen protected (declared in ServerChannel) |
|
|
| TriggerAfterReceiveStream protected (declared in Channel) |
|
|
| TriggerBeforeClose protected (declared in ServerChannel) |
|
|
| TriggerBeforeOpen protected (declared in ServerChannel) |
|
|
| TriggerBeforeSendStream protected (declared in Channel) |
|
|
| TriggerOnAdjustConvertedRodl protected |
|
Calls the OnAdjustConvertedRodl event handler (see below) with provided aContext and aRodlStream. Note: This method sets the position within the provided RODL stream to the beginning.
|
| TriggerOnAdjustRodl protected |
|
Calls the OnAdjustRodl event handler (see below) with provided aContext and aRodlStream. Note: This method sets the position within the provided RODL stream to the beginning.
|
| TriggerOnCustomClientAccessPolicy protected (declared in HttpServerChannel) |
|
Fires the OnCustomClientAccessPolicy event and returns the security policy file generated by its handler (via aPolicyContent parameter). Can be called only from the ancestor class.
|
| TriggerOnCustomCrossOrigin protected (declared in HttpServerChannel) |
|
|
| TriggerOnGetRodl protected |
|
Calls the OnGetRodl event handler (see below) with provided aContext and aRodlStream.
|
| Unregister (declared in HttpServerChannel) |
|
|
Events
| AfterClose (declared in ServerChannel) |
|---|
|
|
| AfterOpen (declared in ServerChannel) |
|
|
| AfterReceiveStream (declared in Channel) |
|
This event is triggered by client and server channels directly after a request or response stream has been received and before the stream gets parsed into a message. User code can assign handlers to this event to process, inspect or modify incoming messages, before they get handled by the RemObjects SDK framework. The passed Stream is a MemoryStream and may be modified. If no handlers are assigned to the AfterReceiveStream event, the message will load the data directly from the incoming medium (usually the network stream); assigning event handlers to AfterReceiveStream will induce a slight overhead as the data will first be copied into a local memory buffer for the event handler. This should not have any noticeably effect except for very large messages or on resource-limited systems such as Compact Framework Clients, but if utmost performance is important, take this note into consideration.
C#: event StreamEventHandler AfterReceiveStream VB: Event AfterReceiveStream As StreamEventHandler
|
| BeforeClose (declared in ServerChannel) |
|
|
| BeforeOpen (declared in ServerChannel) |
|
|
| BeforeSendStream (declared in Channel) |
|
This event is triggered by client and server channels directly before a request or response stream will be sent over the network. User code can assign handlers to this event to process, inspect or modify incoming messages before they get sent out to the remote system. The passed Stream is a MemoryStream and may be modified.
C#: event StreamEventHandler BeforeSendStream VB: Event BeforeSendStream As StreamEventHandler
|
| OnAdjustConvertedRodl |
|
This event is fired only if a RODL is requested via MessageDispathes which supports IRodlConverter (f.e. SoapMessage). It is fired after the RODL is converted via the IRodlConverter interface (in case of SoapMessage this means after the RODL was converted to the corresponding WSDL).
C#: event OnHttpSysAdjustRodlHandler OnAdjustConvertedRodl VB: Event OnAdjustConvertedRodl As OnHttpSysAdjustRodlHandler
|
| OnAdjustRodl |
|
This event is fired after the service RODL is acquired. It can be used to adjust the acquired RODL.
C#: event OnHttpSysAdjustRodlHandler OnAdjustRodl VB: Event OnAdjustRodl As OnHttpSysAdjustRodlHandler
|
| OnCustomClientAccessPolicy (declared in HttpServerChannel) |
|
This event is fired when SendClientAccessPolicyXml is set to Custom. Allows more precise management of client access policies. The handler of this event generates a valid ClientAccessPolicy.xml and puts it to the aPolicyContent parameter.
C#: event OnCustomClientAccessPolicyHandler OnCustomClientAccessPolicy VB: Event OnCustomClientAccessPolicy As OnCustomClientAccessPolicyHandler
|
| OnCustomCrossOrigin (declared in HttpServerChannel) |
|
|
| OnGetRodl |
|
This event is fired when a service RODL is requested. It can be used to provide different RODL based on internal server logic, provided HttpListenerContext etc. If aRodlStream is not null after the event handler finishes its work, it is used as service RODL.
C#: event OnHttpSysAdjustRodlHandler OnGetRodl VB: Event OnGetRodl As OnHttpSysAdjustRodlHandler
|
| OnHttpRequest |
|
This event is fired when any HTTP request is received by the server, f.e. for ClientAccessPolicy.xml, RODL or the ServerInfo page. The Relativity server, for example, uses this event to server custom ServerInfo page. Note: If a handler is assigned to this event, it will be used to handle all HTTP requests instead of requesting a handling method implemented in the HttpSysServerChannel class.
C#: event OnHttpSysHttpRequestHandler OnHttpRequest VB: Event OnHttpRequest As OnHttpSysHttpRequestHandler |
See Also
- Lists
- RemObjects SDK for .NET: Namespaces — Interfaces — Classes — Enums — Implements
- RemObjects SDK shared: Data Types – File Types
- other editions
- RemObjects SDK for Xcode: Protocols — Classes — Enums — Aliases — Implements
- RemObjects SDK for Delphi: Interfaces — Classes — Aliases — Implements
- RemObjects SDK for Java: Namespaces — Interfaces — Classes — Enums — Implements
- RemObjects SDK for JavaScript: Objects

Product: RemObjects SDK
Available Editions: RemObjects SDK for .NET, Xcode, Delphi, Java and JavaScript
