Problema de desempenho quando utiliza o WCF para enviar mensagens SOAP de XML a 4.6. .NET Framework

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 3076436
Sintomas
Suponha que actualizou para Microsoft .NET Framework 4.6 no seu computador. Quando utiliza uma aplicação que utilize o Framework(WCF) de comunicação do Windows para enviar mensagens SOAP de XML, poderá demorar ligeiramente mais a codificação. Em alguns casos, isto poderá afectar a taxa a que uma aplicação de servidor pode processar pedidos.
Causa
Este problema ocorre devido a um novo compilador JIT (JIT), com o nome RyuJIT. Este compilador utiliza optimizações diferentes que o compilador de JIT64 legacy. Um método num caminho quente código para a codificação de cadeias deXmlDictionaryWriter não está optimizado para o compilador JIT novo e as instruções nativas geradas mais lenta e a codificação demora mais tempo. Quando uma mensagem SOAP contém um grande número de cadeias para ser codificado, este código mais lento é utilizado mais frequentemente e pode afectar o tempo de codificação.
Resolução
Para contornar este problema, configure a aplicação para desactivar a utilização de ngen para a assemblagem de System.Runtime.Serialization.dll e para utilizar o motor JIT legacy. Para tal, utilize um dos seguintes métodos:
  • Defina as seguintes variáveis de ambiente:

    COMPLUS_useLegacyJit = 1
    COMPLUS_DisableNativeImageLoadList=System.Runtime.serialization
  • No registo, crie uma das seguintes subchaves:

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

    Em seguida, adicione os seguintes valores:
    • Nome da chave: useLegacyJit
      Tipo: REG_WORD
      Valor: 1
    • Nome da chave: DisableNativeImageLoadList
      Tipo: REG_SZ
      Valor: System.Runtime.Serialization
  • Adicione o seguinte texto para o <app>. exe. Crie as secções indicadas, caso já existam.</app>
    <configuration>         <runtime>              <useLegacyJit enabled="1">             <disableNativeImageLoad>                 <assemblyIdentity name="System.Runtime.Serialization" />             </disableNativeImageLoad>          </runtime>     </configuration>


Para mais informações sobre os problemas conhecidos na 4.6. .NET Framework, consulte Problemas conhecidos relacionados com a 4.6. .NET Framework.
Mais Informação
Para mais informações sobre as alterações de controlo de versões de produto e seus efeitos na 4.6. .NET Framework, consulteCompatibilidade de aplicações no .NET Framework 4.6.

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 3076436 - Última Revisão: 07/22/2015 17:55:00 - Revisão: 1.0

Microsoft .NET Framework 4.6

  • kbsurveynew kbexpertiseadvanced kbtshoot kbmt KB3076436 KbMtpt
Comentários