Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este artículo se resuelve RemotingException que recibe la aplicación de envío cuando Microsoft .NET Remoting recibe un mensaje personalizado con formato binario.
Versión original del producto: Microsoft .NET Framework 4.5
Número de KB original: 2935795
Síntomas
Considere el caso siguiente:
- Puede usar Microsoft .NET Remoting para establecer la comunicación entre aplicaciones.
- Use el formato binario para serializar los mensajes.
- Una aplicación envía un tipo de mensaje personalizado derivado del
MarshalByRefObjectobjeto .
En este escenario, la aplicación de envío recibe una RemotingException excepción. Esta excepción contiene una NotSupportedException excepción interna y el vínculo https://go.microsoft.com/fwlink/?linkid=390633.
Causa
Este problema se produce porque .NET Remoting rechaza los mensajes personalizados que se derivan de MarshalByRefObject al usar el formato binario. Este es el comportamiento predeterminado para las siguientes versiones de Microsoft .NET Framework:
- .NET Framework 1.1
- .NET Framework 2.0
- .NET Framework 3.0
- .NET Framework 3.5
- .NET Framework 4.0
- .NET Framework 4.5
Solución
Para configurar .NET Remoting para aceptar mensajes personalizados MarshalByRefObject , siga estos pasos:
- Al llamar a la función
ChannelServices.RegisterChannel(), establezca el argumentoensureSecurityentrue. Esto garantiza que el canal de comunicación remota sea seguro. - Establezca el valor de la clave
microsoft:Remoting:AllowTransparentProxyMessageentrueen el archivo Web.config o App.config de la aplicación que recibe este mensaje personalizado, como en el siguiente ejemplo:
<configuration>
<appSettings>
<add key="microsoft:Remoting:AllowTransparentProxyMessage" value="true"/>
</appSettings>
</configuration>
Nota:
Si esta <appSettings> configuración no está presente o si contiene un valor distinto de true, .NET Remoting usará el comportamiento predeterminado y producirá una RemotingException excepción cuando se reciba este tipo de mensaje.