Problemas de desempenho ao usar o WCF para enviar mensagens XML SOAP a 4.6 do.NET Framework

IMPORTANTE: Este artigo foi traduzido pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.

Clique aqui para ver a versão em Inglês deste artigo: 3076436
Sintomas
Suponha que você atualizou para o Microsoft.NET Framework 4.6 em seu computador. Quando você usa um aplicativo que usa o Windows Framework(WCF) de comunicação para enviar mensagens XML SOAP, a codificação pode demorar um pouco mais. Em alguns casos, isso pode afetar a taxa na qual um aplicativo de servidor pode processar solicitações.
Causa
Esse problema ocorre devido a um novo Just-In-Time compilador JIT () chamado RyuJIT. Esse compilador usa diferentes otimizações que o compilador JIT64 herdado. Um método em um caminho de código para codificar seqüências de caracteres deXmlDictionaryWriter não está otimizado para o compilador JIT novo e as instruções nativas geradas são executados mais lentamente e a codificação leva mais tempo. Quando uma mensagem SOAP contém um grande número de cadeias de caracteres a ser codificado, este código mais lento é usado com mais freqüência e pode afetar o tempo de codificação.
Resolução
Para contornar esse problema, configure o aplicativo para desativar o uso do ngen para o assembly System.Runtime.Serialization.dll e usar o mecanismo JIT herdado. Para fazer isso, use um dos seguintes métodos:
  • Defina as seguintes variáveis de ambiente:

    COMPLUS_useLegacyJit = 1
    COMPLUS_DisableNativeImageLoadList=System.Runtime.Serialization
  • No registro, crie qualquer 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. Criar seções indicadas, se elas ainda não existam.</app>
    <configuration>         <runtime>              <useLegacyJit enabled="1">             <disableNativeImageLoad>                 <assemblyIdentity name="System.Runtime.Serialization" />             </disableNativeImageLoad>          </runtime>     </configuration>


Para obter mais informações sobre os problemas conhecidos na 4.6 do.NET Framework, consulte Problemas conhecidos para o.NET Framework 4.6.
Mais Informações
Para obter mais informações sobre as alterações de versão do produto e seus efeitos na 4.6 do.NET Framework, consulteCompatibilidade de aplicativo do.NET Framework 4.6.

Aviso: este artigo foi traduzido automaticamente

Propriedades

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

Microsoft .NET Framework 4.6

  • kbsurveynew kbexpertiseadvanced kbtshoot kbmt KB3076436 KbMtpt
Comentários