Compartir a través de


Propiedades de configuración del canal y del formateador

En este tema se enumeran y se explican todas las propiedades de configuración que puede especificar para las implementaciones IChannel en el sistema .NET remoting. Todos los valores están representados por cadenas cuando los declara en el archivo de configuración, pero cuando genera la propiedad IDictionary mediante programación, los valores enteros se pueden especificar como enteros (sin comillas) o como cadenas (valores dentro de comillas), y los valores booleanos se pueden especificar como booleanos. El resto de los valores se especifican como cadenas. En el siguiente ejemplo de código se muestra cómo pueden aparecer los valores en un archivo de configuración en un elemento <channel>. (Tenga en cuenta que si desea especificar una plantilla que utiliza un tipo que está en la caché de ensamblados global, tendrá que incluir toda la información de las versiones y los nombres seguros para enlazar al tipo correcto.)

<channel 
   name="MyCustomChannel"  
   priority="2"
   type="CustomChannelName, CustomAssembly, Version=1.0.6940.0, Culture=neutral, PublicKeyToken=somepublickeystring" 
/>

En el ejemplo de código siguiente se muestra cómo podrían aparecer los valores si los especificara mediante programación para un dominio de aplicación de servidor. En este caso, el servidor especifica que el sistema de interacción remota debería usar un objeto HttpChannel para el transporte, pero que debería utilizar un objeto BinaryFormatter para la serialización y deserialización.

Dim props = New Hashtable() As IDictionary
props("name") = "ChannelName1" 
Dim channel As New HttpChannel( _
   props, _
   Nothing, _
   New BinaryServerFormatterSinkProvider() _
)
ChannelServices.RegisterChannel(channel)

[C#]
IDictionary props = new Hashtable();
props["name"] = "MyHttpChannel";
HttpChannel channel = new HttpChannel(
   props, 
   null, 
   new BinaryServerFormatterSinkProvider()
);
ChannelServices.RegisterChannel(channel);

En la tabla siguiente se muestran las propiedades que se pueden especificar para canales generales.

Propiedad Descripción Tipos compatibles con esta propiedad
name Nombre de este canal. Si no se especifica la propiedad name, el sistema adopta "http" o "tcp" de forma predeterminada. Si se desea registrar más de un HttpChannel o TcpChannel, cada uno debe tener un nombre único. Establezca esta propiedad como una cadena vacía ("" o String.Empty) si desea omitir nombres y evitar que se produzcan conflictos entre ellos. El sistema permitirá un número indeterminado de canales con el valor String.Empty para name. Esta propiedad se utiliza para recuperar un canal concreto cuando se llama a ChannelServices.GetChannel(). Para obtener más información, vea Canales. HttpChannel
HttpServerChannel
HttpClientChannel
TcpChannel
TcpClientChannel
TcpServerChannel
priority Entero que representa la prioridad asignada a este canal. Los números superiores indican una mayor probabilidad de que el canal sea elegido en primer lugar para establecer conexión. La prioridad predeterminada corresponde al valor 1 y se pueden utilizar números negativos. HttpChannel
HttpServerChannel
HttpClientChannel
TcpChannel
TcpClientChannel
TcpServerChannel

En la tabla siguiente se muestran las propiedades que se pueden especificar para canales de cliente.

Propiedad Descripción Tipos compatibles con esta propiedad
clientConnectionLimit Entero que indica el número de conexiones a un servidor determinado que se pueden abrir simultáneamente. El valor predeterminado es 2. HttpChannel
HttpClientChannel
proxyName Nombre del equipo proxy. HttpChannel
HttpClientChannel
proxyPort Entero que especifica el puerto del proxy. HttpChannel
HttpClientChannel
timeout Número de milisegundos que se debe esperar hasta que se agote el tiempo de espera de una solicitud. -1 indica un período de espera infinito. HttpChannel
HttpClientChannel
machineName Cadena que especifica el nombre del equipo utilizado con el canal actual. Reemplaza el nombre de equipo especificado en el objeto de datos del canal.

Se recomienda generalmente utilizar el nombre del equipo según el Sistema de nombres de dominio (DNS), pero cuando la dirección IP de una tarjeta de interfaz de red determinada (NIC) (normalmente una tarjeta NIC inalámbrica) cambia rápidamente, es preciso configurar la aplicación de modo que utilice machineName para que la interacción remota encuentre el equipo mediante DNS.

Sin embargo, cuando el nombre de equipo no se resuelve con la suficiente rapidez (si es que se resuelve) y cuando el equipo dispone de varias tarjetas NIC, ya sea físicas o virtuales (éste suele ser el caso con una conexión mediante acceso telefónico o un adaptador de red VPN), establezca la propiedad machineName en la dirección IP de la tarjeta NIC que se utiliza para dicha conexión.

HttpChannel
HttpClientChannel
TcpChannel
TcpClientChannel
allowAutoRedirect Obtiene o establece un valor que indica si está activada la administración automática de las redirecciones del servidor. HttpChannel
HttpClientChannel
credentials Obtiene o establece una implementación ICredentials que representa la identidad del cliente. HttpChannel
HttpClientChannel
useAuthenticatedConnectionSharing Valor Boolean que indica que el canal de servidor reutilizará las conexiones autenticadas en lugar de autenticar cada llamada entrante. De manera predeterminada, este valor se establece en true si el valor de useDefaultCredentials también está establecido en true; en caso contrario, el valor se establece en false, lo que significa que se autenticará cada llamada si el servidor requiere la autenticación. Esto se aplica también al equivalente programático, que se obtiene creando un objeto que implemente IDictionary, estableciendo el valor de "credentials" en CredentialCache.DefaultCredentials y pasando ese valor al receptor de canal, o bien utilizando el IDictionary devuelto desde el método ChannelServices.GetChannelSinkProperties.

Este par de nombre y valor lo admite únicamente la versión 1.1 de .NET Framework en las siguientes plataformas: Microsoft Windows 98, Windows NT 4.0, Windows Millennium Edition (Windows Me), Windows 2000, Windows XP Home Edition, Windows XP Professional y la familia de Windows Server 2003.

HttpChannel
HttpClientChannel
unsafeAuthenticatedConnectionSharing Valor Boolean que indica que el cliente facilitará sus credenciales y el nombre del grupo de conexiones que el servidor debe utilizar para crear un grupo de conexiones autenticadas. Si se establece este valor en true, el valor de connectionGroupName deberá estar asociado a un solo usuario autenticado. Este par de nombre y valor se omite si el valor de useAuthenticatedConnectionSharing está establecido en true.

Este par de nombre y valor lo admite únicamente la versión 1.1 de .NET Framework en las siguientes plataformas: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional y la familia de Windows Server 2003.

HttpChannel
HttpClientChannel
connectionGroupName Nombre que se utilizará como nombre del grupo de conexiones en el servidor si también se ha especificado el valor de unsafeAuthenticatedConnectionSharing. Este par de nombre y valor se omite si useAuthenticatedConnectionSharing no está establecido en true. Si se ha especificado, asegúrese de que este nombre esté asociado a un solo usuario autenticado.

Este par de nombre y valor lo admite únicamente la versión 1.1 de .NET Framework en las siguientes plataformas: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional y la familia de Windows Server 2003.

HttpChannel
HttpClientChannel

Nota   En Windows 98 y Windows Me, no hay Id. de seguridad para identificar el nombre del grupo de conexiones autenticadas. Por ello, estas plataformas incluyen un nombre para el grupo de conexiones.

Si desea que la aplicación pase la implementación ICredentials o los valores explícitos de username, password y domain en las propiedades HttpClientChannel, podrá activar el uso compartido de las conexiones autenticadas pasando asimismo el par de nombre y valor unsafeAuthenticatedConnectionSharing y el par de nombre y valor connectionGroupName, asegurándose de que el valor de connectionGroupName esté asociado a un solo usuario autenticado.

En la tabla siguiente se muestran las propiedades que se pueden especificar para canales de servidor.

Propiedad Descripción Tipos compatibles con esta propiedad
port Entero que especifica el puerto en el que escuchará el canal. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
suppressChannelData Valor booleano que especifica si el canal contribuirá a los datos del canal. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
useIpAddress Valor booleano que especifica si se utiliza la dirección IP en la dirección URL de publicación en lugar del nombre del equipo. Por ejemplo, las redes inalámbricas a menudo ordenan aleatoriamente la dirección IP de un equipo portátil mientras se desplaza por la red. Al especificar false para este valor, se usará el nombre del equipo en vez de la dirección, de manera que las comunicaciones remotas no se desconecten durante el desplazamiento. El valor predeterminado es true. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
bindTo Una cadena que especifica la dirección IP de la NIC (Network Interface Card, tarjeta de interfaz de red) con la que el canal servidor debería establecer un enlace. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
machineName Cadena que reemplaza el nombre de equipo que se coloca en los datos del canal. Al especificar esta propiedad, se reemplaza useIpAddress. HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel
listen Valor booleano que especifica si se permite que la activación enlace con IChannelReceiverHook.WantsToListen. HttpChannel
HttpServerChannel
rejectRemoteRequests Valor booleano que especifica si se rechazan las solicitudes procedentes de otros equipos. Si se especifica true, sólo se permiten llamadas remotas desde el equipo local. TcpChannel
TcpServerChannel
exclusiveAddressUse Valor booleano que especifica si el canal impedirá que otras aplicaciones reutilicen la combinación de puerto/dirección IP. Cuando se establece en true (valor predeterminado), esta propiedad establece la opción de socket de servidor SocketOptionName en SocketOptionName.ExclusiveAddressUse.

Esta propiedad la admite únicamente .NET Framework versión 1.1 en las siguientes plataformas: Windows NT 4.0 con Service Pack 4 o posterior, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional y la familia de Windows Server 2003.

Esta propiedad requiere privilegios de administrador en las plataformas anteriores a la familia de Windows Server 2003.

HttpChannel
HttpServerChannel
TcpChannel
TcpServerChannel

En la tabla siguiente se muestran las propiedades que se pueden especificar para los receptores de canales.

Propiedad Descripción Tipos compatibles con esta propiedad
includeVersions Valor booleano que especifica si el formateador debe incluir información sobre la versión. BinaryClientFormatterSink
BinaryServerFormatterSink
SoapClientFormatterSink
SoapServerFormatterSink
strictBinding Indica que un formateador de recepción intentará primero identificar el tipo mediante la información de versión completa (si existe) antes de usar sólo el nombre de tipo y de ensamblado sin la información de versión. El valor predeterminado de ambos formateadores proporcionados por el sistema es false. Para obtener más información, vea Elemento <formatter> (plantilla). BinaryServerFormatterSink, SoapServerFormatterSink
metadataEnabled Valor booleano que especifica si deben tenerse en cuenta las solicitudes que terminan en "?wsdl" si este receptor está en la cadena de receptores de canal. El valor predeterminado es true. Si el valor es false, el receptor generará una excepción en todos los casos en los que se solicitan metadatos para todos los objetos en el dominio de aplicación.

Esta propiedad la admite únicamente la versión 1.1 de .NET Framework en las siguientes plataformas: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional y la familia de Windows Server 2003.

SdlChannelSink
remoteApplicationMetadataEnabled Valor booleano que especifica si deben tenerse en cuenta las solicitudes del identificador uniforme de recursos (URI) "RemoteApplicationMetadata?wsdl", que devuelve lenguaje de descripción de servicios Web (WSDL) para describir todos los objetos publicados por el dominio de aplicación. Si el valor es false, cualquier solicitud dirigida a "RemoteApplicationMetadata.rem" generará una excepción. Se tendrán en cuenta todas las demás solicitudes "?wsdl" del identificador URI de determinados objetos. Si el valor es true, se tendrá en cuenta la solicitud global de metadatos. El valor predeterminado es false.

Esta propiedad la admite únicamente la versión 1.1 de .NET Framework en las siguientes plataformas: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional y la familia de Windows Server 2003.

SdlChannelSink
typeFilterLevel Valor de cadena que especifica el nivel de deserialización automática que alcanza un canal de servidor. Los valores admitidos son Low (valor predeterminado) y Full. Para obtener más información sobre los niveles de deserialización, vea Deserialización automática en .NET Remoting.

Esta propiedad la admite únicamente la versión 1.1 de .NET Framework en las siguientes plataformas: Windows 98, Windows NT 4.0, Windows Me, Windows 2000, Windows XP Home Edition, Windows XP Professional y la familia de Windows Server 2003.

BinaryServerFormatterSink
SoapServerFormatterSink

Vea también

Configuración |Configuración de objeto remoto | Esquema de la configuración de la interacción remota