Sintomas
Suponha que tiver actualizado para o Microsoft .NET Framework 4.6 no seu computador. Quando utiliza uma aplicação que utiliza comunicação Framework WCF (Windows) para enviar mensagens SOAP de XML, poderá demorar ligeiramente mais a codificação. Em alguns casos, isto poderá afectar a taxa em 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 de código de atalho para a codificação de cadeias de XmlDictionaryWriter 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 a < aplicação >. exe. Crie as secções indicadas se estas ainda não existir.<configuration> <runtime>
<useLegacyJit enabled="1"> <disableNativeImageLoad> <assemblyIdentity name="System.Runtime.Serialization" /> </disableNativeImageLoad> </runtime> </configuration>
Mais informações
Para mais informações sobre as alterações de controlo de versões de produto e dos seus efeitos em 4.6 de Framework .NET, consulte Compatibilidade de aplicações em 4.6 de Framework .NET.