CORRECÇÃO: Poderá receber uma "a memória não pôde ser 'lida'" mensagem de erro ou uma COM+ Interop erro de excepção de correspondência de tipo ocorre quando executa aplicações do .NET Framework que utilizam AS / 400 dados da fila controlo ActiveX

Sintomas

Quando executar aplicações do Microsoft .NET Framework que utilizam AS / 400 dados fila controlo ActiveX (Mseigdq.dll) para ler e escrever para IBM iSeries (AS / 400) filas de dados, poderá detectar um ou mais dos seguintes problemas:

  • Recebe mensagens de erro de aplicação são semelhantes à seguinte:

    ApplicationName – erro de aplicação


    A instrução no "endereço de memória" referência à memória no "0x00000000". A memória não pôde ser "lida".



    Clique em OK para terminar o programa

    Clique em ' Cancelar ' para depurar o programa

  • Ocorre uma excepção de erro de correspondência de tipo de Microsoft COM+ Interop ao tentar processar um registo que é devolvido quando a aplicação chama o método DataQueue.GetQueueItem . Esta excepção só ocorre quando a aplicação utiliza o código gerido. Esta excepção não ocorre se a aplicação utiliza o Microsoft Visual Basic 6. A mensagem de erro que receber poderão ser semelhante ao seguinte:

    System.Runtype.InteropServices.SafeArrayTypeMismatchException

Causa

Recebe uma "a memória não pôde ser 'lida'" mensagem de erro porque AS / 400 controlo ActiveX da fila de dados tenta ler uma localização de memória inválida.

A excepção de erro de correspondência de tipo de COM+ Interop ocorre porque AS / 400 controlo ActiveX da fila de dados devolve dados de registo como uma matriz segura de dados de VT_UI1. Estes dados não não compatível com Automation. Este comportamento faz com que a camada de COM+ Interop para devolver a excepção de erro de correspondência de tipo porque a camada de interoperabilidade COM não sabe como organizar os dados VT_UI1.

Resolução

Existe uma correção suportada pela Microsoft. No entanto, esta correção destina-se apenas a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico. Esta correcção poderá ser submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afetado por este problema, recomendamos que aguarde pela próxima atualização de software que contenha esta correção.

Se a correcção estiver disponível para transferência, existirá uma secção de "Transferência de correcção disponível" na parte superior deste artigo da Base de dados de conhecimento. Se esta secção não for apresentada, contacte o Suporte ao Cliente da Microsoft para obter a correção.

Nota Caso ocorram problemas adicionais ou se for necessária a resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos de normais do suporte serão aplicados a questões de suporte adicional e problemas incluídos nesta correção específica. Para uma lista completa dos números de telefone de suporte e serviço de cliente da Microsoft ou para criar um pedido de assistência separado, visite o seguinte Web site da Microsoft:

http://support.microsoft.com/contactus/?ws=supportNota O formulário "Transferência de correcção disponível" apresenta os idiomas nos quais a correcção está disponível. Se não visualizar o seu idioma, é porque uma correcção não está disponível para esse idioma.

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são listadas na hora Universal Coordenada (UTC). Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador Fuso horário na ferramenta Data e hora no painel de controlo. Date Time Version Size File name
----------------------------------------------------
29-Sep-2005 19:39 6.0.1988.0 121,344 Mseigdq.dll Nota Devido a dependências de ficheiros, a correcção mais recente que contém estes ficheiros também poderão conter ficheiros adicionais.

Estado

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".

Mais informações

Esta correcção actualiza AS / 400 dados fila mensagens de controlo ActiveX para corrigir o problema que provoca um erro de aplicação quando acede a memória inválida.

Esta correcção não corrige o problema em que ocorre uma excepção de erro de correspondência de tipo de COM+ Interop. No entanto, pode resolver o problema utilizando o .NET Framework 2.0 em qualquer computador que está a executar uma aplicação .NET Framework que chama a como /mensagens da fila de 400 dados controlo ActiveX. O .NET Framework 2.0 correctamente pode empacotar referências de matrizes de bytes não assinados, tais como tipos de dados de VT_UI1. Por conseguinte, a excepção de erro de correspondência de tipo não ocorre.

Precisa de mais ajuda?

Aumente os seus conhecimentos
Explore as formações
Seja o primeiro a obter novas funcionalidades
Aderir ao Microsoft insiders

As informações foram úteis?

Obrigado pelos seus comentários!

Obrigado pelo seu feedback! Parece que poderá ser benéfico reencaminhá-lo para um dos nossos agentes de suporte do Office.

×