Delen via


Foutcodes interpreteren

Nadat u hebt vastgesteld welke toepassing de bron van een probleem is, moet u achterhalen welke fout is opgetreden. Er worden fouten gegenereerd en gerapporteerd in verschillende indelingen, afhankelijk van de taal die uw toepassing gebruikt.

In Microsoft Visual C++ worden geslaagde, waarschuwings- en foutwaarden geretourneerd met behulp van een 32-bits getal dat bekend staat als een HRESULT-. Zie het headerbestand Winerror.h dat is opgenomen in de Windows SDK voor een lijst met door het systeem gedefinieerde HRESULT waarden. Dit bestand bevat alle COM+-foutcodes en beschrijvingen. Zie Foutafhandelingvoor meer informatie over HRESULT- waarden.

In de Java-taal wordt een exemplaar van com.ms.com.ComFailException gegenereerd om een fout aan te geven, waarbij het object ComFailException een HRESULT-opgeeft. Een instantie van com.ms.com.ComSuccessException geeft aan dat er sprake is van succes met een retourwaarde van False. Zie de documentatie van Microsoft Visual J++ voor informatie over het interpreteren van deze uitzonderingen.

Notitie

COM+-toepassingsserverprocessen die als host fungeren voor Visual J++-objecten, worden niet inactief (zelfs niet met nul actieve objecten), tenzij u JIT-foutopsporing uitschakelt in de VJ6 IDE. Zie de Documentatie voor Visual J++ voor meer informatie over hoe u dit doet.

In Visual Basic kunt u HRESULT- waarden ophalen door de eigenschap Err.Number te onderzoeken. Een beschrijving van de fout kan worden opgehaald met de eigenschap Err.Description.

U kunt ook het hulpprogramma ERRLOOK in Microsoft Visual Studio gebruiken om een systeemfoutbericht of modulefoutbericht op te halen. ERRLOOK haalt de tekst van het foutbericht automatisch op als u een hexadecimale of decimale waarde sleept vanuit het Visual Studio-foutopsporingsprogramma of een andere Automation-toepassing. U kunt ook een waarde invoeren door deze in of te plakken vanaf het IDE-klembord en op de optie Opzoeken te klikken.

Met de volgende C++-methode wordt een beschrijving van de fout afgedrukt op basis van de invoer HRESULT-.

#include <stdio.h>
#include <windows.h>
#include <tchar.h>

void ErrorDescription(HRESULT hr) 
{ 
     if(FACILITY_WINDOWS == HRESULT_FACILITY(hr)) 
         hr = HRESULT_CODE(hr); 
     TCHAR* szErrMsg; 

     if(FormatMessage( 
       FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, 
       NULL, hr, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
       (LPTSTR)&szErrMsg, 0, NULL) != 0) 
     { 
         _tprintf(TEXT("%s"), szErrMsg); 
         LocalFree(szErrMsg); 
     } else 
         _tprintf( TEXT("[Could not find a description for error # %#x.]\n"), hr); 
}

De volgende tabel bevat beschrijvingen van veelvoorkomende foutcodes in COM+.

Foutcodes Definities
COMADMIN_E_ALREADYINSTALLED
Het object is al geregistreerd.
COMADMIN_E_APP_FILE_READFAIL
Er is een fout opgetreden bij het lezen van het toepassingsbestand.
COMADMIN_E_APP_FILE_VERSION
Ongeldig versienummer in toepassingsbestand.
COMADMIN_E_APP_FILE_WRITEFAIL
Er is een fout opgetreden bij het schrijven naar het toepassingsbestand.
COMADMIN_E_APPDIRNOTFOUND
De installatiemap van de toepassing is niet gevonden.
COMQC_E_APPLICATION_NOT_QUEUED
Alleen COM+-toepassingen die als 'in wachtrij' zijn gemarkeerd, kunnen worden gemaakt met behulp van de moniker 'wachtrij'.
COMADMIN_E_APPLICATIONEXISTS
De toepassing is al geïnstalleerd.
COMADMIN_E_APPLID_MATCHES_CLSID
Een CLSID met dezelfde GUID als de nieuwe toepassings-id is al geïnstalleerd op deze computer.
COMADMIN_E_APP_NOT_RUNNING
De opgegeven toepassing wordt momenteel niet uitgevoerd.
COMADMIN_E_AUTHENTICATIONLEVEL
Kan het vereiste verificatieniveau voor de updateaanvraag niet instellen.
COMADMIN_E_BADPATH
Het bestandspad is ongeldig.
COMADMIN_E_BADREGISTRYLIBID
De bibliotheek-id van het geregistreerde type is ongeldig.
COMADMIN_E_BADREGISTRYPROGID
De ProgID van het onderdeel ontbreekt of is beschadigd.
COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY
De toepassingsproxy kan niet worden geëxporteerd.
COMADMIN_E_KAN_APP_NIET_STARTEN
Kan de toepassing niet starten omdat het een bibliotheektoepassing of een toepassingsproxy is.
COMADMIN_E_CAN_NOT_EXPORT_SYS_APP (Kan systeemsysteemapplicatie niet exporteren)
De systeemtoepassing kan niet worden geëxporteerd.
COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT
De gebruiker kan zich niet abonneren op dit onderdeel omdat het onderdeel mogelijk is geïmporteerd.
No improvements are necessary, as technical terms or codes are typically left untranslated to ensure consistency with software documentation and error reporting.
Er is een fout opgetreden bij het kopiëren van het bestand.
COMADMIN_E_CLSIDORIIDMISMATCH
CLSID's of IIDs van applicatiebestanden komen niet overeen met de bijbehorende DLL's.
COMADMIN_E_COMP_MOVE_BAD_DEST
De verplaatsing van het onderdeel is mislukt omdat de doeltoepassing niet meer bestaat.
COMADMIN_E_COMP_MOVE_GEBLOKKEERD
De verplaatsing van het onderdeel is niet toegestaan omdat de bron- of doeltoepassing een systeemtoepassing is of momenteel is vergrendeld tegen wijzigingen.
COMADMIN_E_COMPFILE_BADTLB
De typebibliotheek kan niet worden geladen.
COMADMIN_E_COMPFILE_CLASSNOTAVAIL
Het DLL-bestand biedt geen ondersteuning voor de onderdelen die worden vermeld in de typebibliotheek.
COMADMIN_E_COMPFILE_DOESNOTEXIST
Dit bestand bestaat niet.
COMADMIN_E_COMPFILE_GETCLASSOBJ
De methode GetClassObject is mislukt in het DLL-bestand.
COMADMIN_E_COMPFILE_LOADDLLFAIL
Het DLL-bestand kan niet worden geladen.
COMADMIN_E_COMPFILE_NOREGISTRAR
De componentregistrar waarnaar in dit bestand wordt verwezen, is niet beschikbaar.
COMADMIN_E_COMPFILE_NOTINSTALLABLE
Het bestand bevat geen onderdelen of onderdeelgegevens.
COMADMIN_E_COREQCOMPINSTALLED
Er is al een onderdeel in hetzelfde DLL-bestand geïnstalleerd.
COMADMIN_E_DLLLOADFAILED (DLL laden mislukt)
Het DLL-bestand kan niet worden geladen.
COMADMIN_E_DLLREGISTERSERVER
De functie DllRegisterServer is mislukt toen het onderdeel werd geïnstalleerd.
COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER
Een gebeurtenisklasse kan niet worden geconfigureerd als abonneeonderdeel. Wanneer er een poging wordt gedaan om een abonnement te maken met een gebeurtenisklasse als abonnee, wordt deze fout geretourneerd.
COMADMIN_E_INVALIDUSERIDS
Een of meer gebruikers in het toepassingsbestand zijn ongeldig.
COMADMIN_E_KEYMISSING
Het object is niet gevonden in de catalogus.
COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE
Bibliotheektoepassingen en toepassingsproxy's zijn niet compatibel. Deze fout wordt geretourneerd wanneer er een poging wordt gedaan om een toepassingsproxy te exporteren en de activeringseigenschap van de toepassing een bibliotheek is.
COMADMIN_E_NOREGISTRYCLSID
De CLSID van het onderdeel ontbreekt of is beschadigd.
COMADMIN_E_NOSERVERSHARE
Er is geen serverbestandsshare beschikbaar.
COMADMIN_F_NIETWIJZIGBAAR
Wijzigingen in dit object en de bijbehorende subobjecten zijn uitgeschakeld.
COMADMIN_E_NOTDELETEABLE
De verwijderfunctie is uitgeschakeld voor dit object.
COMADMIN_E_NOTINREGISTRY
Het object is niet gevonden in het register.
COMADMIN_E_NOUSER
Een of meer gebruikers zijn ongeldig.
COMADMIN_E_OBJECT_BESTAAT_NIET
Een van de opgegeven objecten kan niet worden gevonden.
COMADMIN_E_OBJECT_PARENT_MISSING
Een van de objecten die worden ingevoegd of bijgewerkt, behoort niet tot een geldige bovenliggende verzameling.
COMADMIN_E_OBJECTERRORS
Er zijn fouten opgetreden bij het openen van een of meer objecten. Zie de verzameling ErrorInfo voor meer informatie.
COMADMIN_E_OBJECTEXISTS
Het object dat u probeert toe te voegen of de naam ervan te wijzigen, bestaat al.
COMADMIN_E_OBJECTINVALID
Een of meer eigenschappen van het object ontbreken of zijn ongeldig.
COMADMIN_E_OBJECTNOTPOOLABLE
Dit object kan niet worden gepoold.
COMADMIN_E_PROPERTYSAVEFAILED
Een of meer eigenschapsinstellingen zijn ongeldig of conflicteren met elkaar.
COMADMIN_E_PROPERTY_OVERFLOW (eigenschap-overschrijdingsfout)
De waarde van de eigenschap is te groot.
COMADMIN_E_REGFILE_CORRUPT
Het registratiebestand is beschadigd.
COMADMIN_E_REGISTERTLB
Het systeem kan de typebibliotheek niet registreren.
COMADMIN_E_REGISTRARFAILED
Er zijn fouten opgetreden in de componentenregistratie.
COMADMIN_E_REMOTEINTERFACE
Interfacegegevens ontbreken of zijn gewijzigd.
COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM
Deze bewerking is niet ingeschakeld op dit platform.
COMADMIN_E_ROLE_DOES_NOT_EXIST
Er bestaat geen rol die is toegewezen aan een onderdeel, interface of methode in de toepassing.
COMADMIN_E_ROLEEXISTS
De rol bestaat al.
COMADMIN_E_SERVICENOTINSTALLED
De service is niet geïnstalleerd.
COMADMIN_E_SESSION
De servercatalogusversie wordt niet ondersteund.
COMADMIN_S_SOMEALREADYPAUSED
Een of meer van de opgegeven toepassingsprocessen zijn al onderbroken.
COMADMIN_S_SOMEALREADYRUNNING
Een of meer van de opgegeven toepassingsprocessen zijn al uitgevoerd.
COMADMIN_E_START_APP_HEEFT_COMPONENTEN_NODIG
Als u de toepassing wilt starten, moet u onderdelen in een toepassing hebben.
COMADMIN_E_SVCAPP_NOT_DEELBAAR_OF_HERBRUIKBAAR
De COM+-toepassingen die als een NT-service worden uitgevoerd, worden mogelijk niet gemarkeerd als gegroepeerd of gerecycled.
COMADMIN_E_SYSTEMAPP
Deze bewerking kan niet worden uitgevoerd op de systeemtoepassing.
COMADMIN_E_USER_IN_SET
Een of meer gebruikers zijn al toegewezen aan een lokale partitieset.
Ongeldige gebruikersnaam of wachtwoord voor COMADMIN (COMADMIN_E_USERPASSWDNOTVALID)
De identiteit of het wachtwoord die voor de toepassing is ingesteld, is ongeldig.

Foutisolatie en Failfast Beleid

de bron van een fout zoeken

Hoe COM+ retourwaarden wijzigt

strategieën voor het afhandelen van fouten in COM+

Problemen oplossen