Compartir a través de


RemotingException se produce cuando .NET Remoting recibe un mensaje personalizado con formato binario.

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 MarshalByRefObject objeto .

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:

  1. Al llamar a la función ChannelServices.RegisterChannel(), establezca el argumento ensureSecurity en true. Esto garantiza que el canal de comunicación remota sea seguro.
  2. Establezca el valor de la clave microsoft:Remoting:AllowTransparentProxyMessage en true en 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.

Referencias