KORRIGERA: Du kan få en "minnet kunde inte"läsas"" felmeddelande eller en COM +-Interop typmatchningsfel, undantag uppstår när du kör.NET Framework-program som använder som / 400 Data kö ActiveX-kontroll


Symptom


När du kör Microsoft.NET Framework-program som använder som / 400 Data kö ActiveX-kontroll (Mseigdq.dll) att läsa från och skriva till IBM iSeries (AS / 400) data köer, en eller flera av följande problem uppstå:
  • Du får felmeddelanden i program som liknar följande:
    ApplicationName – programfel


    Instruktionen på "minnesadress" refererade till minnet på "0x00000000". Minnet kunde inte "läsas".



    Klicka på OK om du vill avsluta programmet

    Klicka på Avbryt om du vill felsöka programmet
  • En Microsoft COM + Interop typ matchningsfel-undantag uppstår när du försöker behandla en post som returneras när programmet anropar metoden DataQueue.GetQueueItem . Detta undantag inträffar bara när programmet använder hanterad kod. Detta undantag uppstår inte om programmet använder Microsoft Visual Basic 6. Felmeddelandet som visas kan vara av följande slag:
    System.Runtype.InteropServices.SafeArrayTypeMismatchException

Orsak


Du får en "minnet kunde inte"läsas"" Felmeddelandet beror på AS / 400 Data kön ActiveX-kontroll försöker läsa en ogiltig minnesplats.

COM + Interop-undantag typ matchningsfel inträffar eftersom på AS / 400 Data kön ActiveX-kontrollen returnerar postdata som en säker vektor VT_UI1 data. Dessa data är Automation-kompatibla. Detta medför att returnera typ matchningsfel undantag eftersom COM Interop-lagret inte vet hur du konvertera VT_UI1 data COM + Interop lagret.

Lösning


En snabbkorrigering är tillgänglig från Microsoft. Den här snabbkorrigeringen är emellertid avsedd att åtgärda det problem som beskrivs i denna artikel. Använd bara den här snabbkorrigeringen för system med just detta problem. Snabbkorrigeringen kan komma att testas igen. Om du inte störs alltför mycket av detta problem rekommenderar vi att du väntar på nästa programuppdatering som innehåller den här snabbkorrigeringen.

Om snabbkorrigeringen är tillgänglig för hämtning finns ett avsnitt för "Snabbkorrigeringen är tillgänglig" överst i den här Knowledge Base-artikeln. Om den sektionen saknas, kontakta Microsofts support för att få tag på hotfixen.

Obs! Om det uppstår ytterligare problem eller krävs felsökning, kan du behöva skapa en serviceförfrågan. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte uppfyller kraven för den här snabbkorrigeringen. En fullständig lista över telefonnummer för Microsofts kundtjänst och Support eller skapa en serviceförfrågan finns på följande Microsoft-webbplats:Obs! "Snabbkorrigeringen tillgänglig"-formuläret visar de språk som snabbkorrigeringen är tillgänglig. Om ditt språk inte visas beror det på att ingen snabbkorrigering är tillgänglig för språket.

Den engelska versionen av den här snabbkorrigeringen har de filattribut (eller senare filattribut) som visas i följande tabell. Datum och tider för dessa filer anges i UTC-tid (UTC). När du visar filinformationen konverteras den till lokal tid. Använd fliken tidszon i verktyget datum och tid på Kontrollpanelen om du vill se skillnaden mellan UTC-tid och lokal tid.
   Date         Time   Version     Size     File name   ----------------------------------------------------
29-Sep-2005 19:39 6.0.1988.0 121,344 Mseigdq.dll
Obs! På grund av filberoenden kan kan den senaste korrigeringsfilen som innehåller dessa filer också innehålla ytterligare filer.

Status


Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Mer Information


Snabbkorrigeringen uppdaterar på AS / 400 Data kö ActiveX-kontrollen för att åtgärda det problem som orsakar fel meddelanden när ogiltigt minne används.

Den här snabbkorrigeringen löser inte problemet som ett COM + Interop typ matchningsfel undantag inträffar. Du kan lösa problemet med hjälp av.NET Framework 2.0 på en dator där en.NET Framework-program som anropar som dock / 400 Data kö ActiveX-kontrollen. .NET Framework 2.0 kan korrekt konvertera osignerad byte matriser som VT_UI1 datatyper. Därför uppstår inte typen matchningsfel undantag.