¿Cómo puedo aumentar el maxReceivedMessagesize al llamar a un WCF desde VB6?

StackOverflow https://stackoverflow.com/questions/7820171

  •  26-10-2019
  •  | 
  •  

Pregunta

Por el momento tengo: 1) una configuración de WCF para devolver un bloque de XML (específicamente es el contenido de un calendario de Exchange 2003). 2) Un formulario VB6 con un comando que accede al WCF a través de un objeto construido en el apodo de servicio, incluido el contenido del archivo de contrato WSDL.

Esto funciona bien solo cuando la cadena que se pasa es de un tamaño aceptable. Cuando intento devolver el XML completo generado en el lado de WCF, encuentro el siguiente error: "Se ha excedido la cuota de tamaño de mensaje máximo para los mensajes entrantes (65536). Para aumentar la cuota, use la propiedad MaxReceedMessageSege en el elemento de enlace apropiado "

Cuando agrego una configuración vinculante en la aplicación de la aplicación WCF para aumentar el maxReceivedMessageSeSeSe, esto no tiene ningún efecto, presumiblemente ya que el cliente VB6 es ciego a esto. (El contrato WSDL generado ni siquiera incluye el valor en su XML)

Leyendo*, existe la sugerencia de que necesito hacer un cambio de configuración similar en el lado del cliente. Así que he creado un archivo vb6.exe.config y copié los detalles de configuración vinculante para esto. Luego he extendido el apodo para incluir esto: binding = wshttpbinding_iexchange, bindingNamespace = 'Exchange', BindingConfiguration = 'ExchangeBinding'

Sin embargo, todavía estoy recibiendo el mismo mensaje de error con respecto a la cuota de tamaño.

Al pasar mal los elementos de enlace de Binding o Binding Names del apodo anterior, obtengo un error esperado, pero al pasar mal el elemento BindingConfiguration no recibo ningún error, como si este elemento sea irrelevante de todos modos.

Parece que tengo las piezas pero no la solución de trabajo en este momento. ¿Alguna idea alguien?

  • Se declara que el objeto OBJ es del tipo de proxy de interfaz. El apodo se establece para incluir solo la dirección y el tipo de enlace. Dado que está utilizando solo la configuración predeterminada para WSHTTPBinding, no se requiere que suministre un valor de Configuración de enlace. Si requirió anular cualquiera de las configuraciones predeterminadas para la vinculación, puede proporcionar un archivo de configuración de la aplicación con el nombre de nombre.exe.config y colocarla en el directorio de programa del cliente

No hay solución correcta

Otros consejos

Personalmente, crearía una biblioteca expuesta .NET Compuesta que llame desde el VB6. La biblioteca .NET podría controlar todo el enlace del cliente y VB6 simplemente hablaría con una DLL y pase.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top