Problema de rendimiento al utilizar WCF para enviar mensajes de SOAP XML en la 4.6 de.NET Framework

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 3076436
Síntomas
Se supone que se ha actualizado a Microsoft.NET Framework 4.6 en el equipo. Cuando se utiliza una aplicación que utiliza Framework(WCF) de comunicación de Windows para enviar mensajes de SOAP XML, la codificación tardará más tiempo. En algunos casos, esto puede afectar a la velocidad a la que una aplicación de servidor puede procesar las solicitudes.
Causa
Este problema se produce debido a un nuevo compilador de Just (JIT) que se denomina RyuJIT. Este compilador utiliza diferentes optimizaciones que el compilador JIT64 heredado. Un método en una ruta de códigos para la codificación de las cadenas deXmlDictionaryWriter no está optimizado para el nuevo compilador JIT y las instrucciones generadas nativas se ejecutarán más lentamente y la codificación tarda más tiempo. Cuando un mensaje SOAP contiene un gran número de cadenas que se pueden codificar, este código más lento se utiliza con más frecuencia y puede afectar el tiempo de codificación.
Solución
Para evitar este problema, configure la aplicación para deshabilitar el uso de ngen para el conjunto de ensamblados y para utilizar el motor JIT heredado. Para ello, utilice uno de los métodos siguientes:
  • Establecer las siguientes variables de entorno:

    COMPLUS_useLegacyJit = 1
    COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization
  • En el registro, crear cualquiera de las siguientes subclaves:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\. NETFramework
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\. NETFramework

    A continuación, agregue los valores siguientes:
    • Nombre de clave: useLegacyJit
      Tipo: REG_WORD
      Valor: 1
    • Nombre de clave: DisableNativeImageLoadList
      Tipo: REG_SZ
      Valor: System.Runtime.Serialization
  • Agregue el texto siguiente a la <app>. archivo exe.config. Crear las secciones indicadas, si todavía no existen.</app>
    <configuration>         <runtime>              <useLegacyJit enabled="1">             <disableNativeImageLoad>                 <assemblyIdentity name="System.Runtime.Serialization" />             </disableNativeImageLoad>          </runtime>     </configuration>


Para obtener más información acerca de los problemas conocidos de la 4.6 de.NET Framework, vea Problemas conocidos de la 4.6 de.NET Framework.
Más información
Para obtener más información acerca de los cambios de control de versiones de productos y sus efectos en la 4.6 de.NET Framework, veaCompatibilidad de aplicaciones en el.NET Framework 4.6.

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 3076436 - Última revisión: 07/22/2015 20:34:00 - Revisión: 1.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbexpertiseadvanced kbtshoot kbmt KB3076436 KbMtes
Comentarios