Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
När du har fastställt vilket program som är orsaken till ett problem måste du ta reda på vilket fel som har inträffat. Fel utlöses och rapporteras i olika format, beroende på vilket språk programmet använder.
I Microsoft Visual C++ returneras värdena för lyckade, varningar och fel med ett 32-bitarstal som kallas HRESULT. En lista över systemdefinierade HRESULT- värden finns i huvudfilen Winerror.h som ingår i Windows SDK. Den här filen innehåller alla COM+-felkoder och beskrivningar. Mer information om HRESULT--värden finns i Felhantering.
I Java-programmeringen genereras en instans av com.ms.com.ComFailException för att signalera ett fel, där ComFailException-objektet anger en HRESULT. En instans av com.ms.com.ComSuccessException indikerar framgång med returvärdet False. Information om hur du tolkar dessa undantag finns i Microsoft Visual J++-dokumentationen.
Note
COM+-programserverprocesser som är värdar för Visual J++-objekt kommer inte att vara inaktiva (även med noll aktiva objekt) om du inte inaktiverar JIT-felsökning i VJ6 IDE. Information om hur du gör det finns i dokumentationen för Visual J++.
I Visual Basic kan du hämta HRESULT- värden genom att undersöka egenskapen Err.Number. En beskrivning av felet kan hämtas med egenskapen Err.Description.
Du kan också använda ERRLOOK-verktyget i Microsoft Visual Studio för att hämta ett systemfelmeddelande eller ett modulfelmeddelande. ERRLOOK hämtar felmeddelandetexten automatiskt om du drar och släpper ett hexadecimalt eller decimalvärde från Visual Studio-felsökningsprogrammet eller något annat Automation-aktiverat program. Du kan också ange ett värde genom att antingen skriva det i eller klistra in det från IDE-urklipp och klicka på alternativet Slå upp.
Följande C++-metod skriver ut en beskrivning av felet baserat på indata 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);
}
Följande tabell innehåller beskrivningar av vanliga felkoder i COM+.
Felkoder | Definitioner |
---|---|
COMADMIN_E_ALREADYINSTALLED |
Objektet är redan registrerat. |
COMADMIN_E_APP_FILE_READFAIL – Misslyckades med att läsa appsfilen |
Det uppstod ett fel vid läsning av programfilen. |
COMADMIN_E_APP_FILE_VERSION |
Ogiltigt versionsnummer i programfilen. |
COMADMIN_E_APP_FILE_WRITEFAIL |
Det uppstod ett fel vid skrivning till programfilen. |
COMADMIN_E_APPDIRNOTFOUND |
Det gick inte att hitta programinstallationskatalogen. |
COMQC_E_APPLICATION_NOT_QUEUED |
Endast COM+-program som är märkta "i kö" kan skapas med hjälp av "kö"-monikern. |
COMADMIN_E_APPLICATIONEXISTS |
Programmet är redan installerat. |
COMADMIN_E_APPLID_MATCHES_CLSID |
Ett CLSID med samma GUID som det nya program-ID:t är redan installerat på den här datorn. |
COMADMIN_E_APP_NOT_RUNNING |
Det angivna programmet körs inte för närvarande. |
COMADMIN_E_AUTHENTICATIONLEVEL |
Det går inte att ange nödvändig autentiseringsnivå för uppdateringsbegäran. |
COMADMIN_E_BADPATH |
Filsökvägen är ogiltig. |
COMADMIN_E_BADREGISTRYLIBID |
Det registrerade typbiblioteks-ID:t är ogiltigt. |
COMADMIN_E_BADREGISTRYPROGID |
Komponentens ProgID saknas eller är skadad. |
COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY |
Programproxyn kan inte exporteras. |
COMADMIN_E_KAN_INTE_STARTA_APP |
Det gick inte att starta programmet eftersom det antingen är ett biblioteksprogram eller en programproxy. |
COMADMIN_E_CAN_NOT_EXPORT_SYS_APP |
Systemprogrammet kan inte exporteras. |
COMADMIN_E_KAN_INTE_PRENUMERERA_PÅ_KOMPONENT |
Användaren kan inte prenumerera på den här komponenten eftersom komponenten kan ha importerats. |
COMADMIN_E_CANTCOPYFILE |
Ett fel uppstod när filen skulle kopieras. |
COMADMIN_E_CLSIDORIIDMISMATCH |
CLSID:er eller IID:er i programfilen matchar inte motsvarande DLL:er. |
COMADMIN_E_COMP_MOVE_BAD_DEST - Felaktig måldestination för komponentflytt |
Komponentflytten misslyckades eftersom målprogrammet inte längre finns. |
COMADMIN_E_COMP_MOVE_LOCKED |
Komponentflytten tilläts inte eftersom käll- eller målprogrammet antingen är ett systemprogram eller för närvarande är låst mot ändringar. |
COMADMIN_E_COMPFILE_BADTLB |
Det gick inte att läsa in typbiblioteket. |
COMADMIN_E_COMPFILE_CLASSNOTAVAIL |
DLL-filen stöder inte de komponenter som anges i typbiblioteket. |
COMADMIN_E_COMPFILE_DOESNOTEXIST |
Den här filen finns inte. |
COMADMIN_E_COMPFILE_GETCLASSOBJ |
Metoden GetClassObject misslyckades i DLL-filen. |
COMADMIN_E_COMPFILE_LOADDLLFAIL |
DLL:en kunde inte läsas in. |
COMADMIN_E_COMPFILE_NOREGISTRAR |
Komponentregistratorn som refereras i den här filen är inte tillgänglig. |
COMADMIN_E_COMPFILE_NOTINSTALLABLE |
Filen innehåller inte komponenter eller komponentinformation. |
COMADMIN_E_COREQCOMPINSTALLED |
En komponent i samma DLL är redan installerad. |
COMADMIN_E_DLLLOADFAILED |
DLL:en kunde inte läsas in. |
COMADMIN_E_DLLREGISTERSERVER |
Funktionen DllRegisterServer misslyckades när komponenten installerades. |
COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER |
Det går inte att konfigurera en händelseklass som en prenumerantkomponent. När ett försök görs att skapa en prenumeration med en händelseklass som prenumerant returneras det här felet. |
COMADMIN_E_INVALIDUSERIDS |
En eller flera användare i programfilen är inte giltiga. |
COMADMIN_E_KEYMISSING |
Objektet hittades inte i katalogen. |
COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE |
Biblioteksprogram och programproxyservrar är inte kompatibla. Det här felet returneras när ett försök görs att exportera en programproxy och programmets aktiveringsegenskap är ett bibliotek. |
COMADMIN_E_NOREGISTRYCLSID |
Komponentens CLSID saknas eller är skadad. |
COMADMIN_E_NOSERVERSHARE |
Ingen serverfildelning är tillgänglig. |
COMADMIN_E_NOTCHANGEABLE |
Ändringar i det här objektet och dess underobjekt har inaktiverats. |
COMADMIN_E_NOTDELETEABLE |
Borttagningsfunktionen har inaktiverats för det här objektet. |
COMADMIN_E_NOTINREGISTRY |
Objektet hittades inte i registret. |
COMADMIN_E_NOUSER |
En eller flera användare är inte giltiga. |
COMADMIN_E_OBJECT_DOES_NOT_EXIST |
Det går inte att hitta något av de angivna objekten. |
COMADMIN_E_OBJEKT_FÖRÄLDRAR_SAKNAS |
Ett av objekten som infogas eller uppdateras tillhör inte en giltig överordnad samling. |
COMADMIN_E_OBJECTERRORS |
Det uppstod fel vid åtkomst till ett eller flera objekt. Mer information finns i samlingen ErrorInfo. |
COMADMIN_E_OBJECTEXISTS |
Det objekt som du försöker lägga till eller byta namn på finns redan. |
COMADMIN_E_OBJECTINVALID |
En eller flera av objektets egenskaper saknas eller är ogiltiga. |
COMADMIN_E_OBJECTNOTPOOLABLE |
Det går inte att poola det här objektet. |
COMADMIN_E_PROPERTYSAVEFAILED (Ett fel inträffade vid sparande av egenskaper) |
En eller flera egenskapsinställningar är antingen ogiltiga eller i konflikt med varandra. |
COMADMIN_E_PROPERTY_OVERFLOW |
Egenskapsvärdet är för stort. |
COMADMIN_E_REGFILE_CORRUPT |
Registreringsfilen är skadad. |
COMADMIN_E_REGISTERTLB |
Det gick inte att registrera typbiblioteket. |
COMADMIN_E_REGISTRARFAILED |
Fel inträffade i komponentregistratorn. |
COMADMIN_E_REMOTEINTERFACE |
Gränssnittsinformation saknas eller ändras. |
KOMADMIN_E_KRÄVER_ANNAN_PLATTFORM |
Den här åtgärden är inte aktiverad på den här plattformen. |
COMADMIN_E_ROLE_DOES_NOT_EXIST |
En roll som tilldelats en komponent, ett gränssnitt eller en metod finns inte i programmet. |
COMADMIN_E_ROLEEXISTS |
Rollen finns redan. |
COMADMIN_E_SERVICENOTINSTALLED |
Tjänsten är inte installerad. |
COMADMIN_E_SESSION |
Serverkatalogversionen stöds inte. |
En del är redan pausade |
En eller flera av de angivna programprocesserna har redan pausats. |
COMADMIN_S_SOMEALREADYRUNNING |
En eller flera av de angivna programprocesserna kördes redan. |
COMADMIN_FEL_START_APP_BEHÖVER_KOMPONENTER |
Om du vill starta programmet måste du ha komponenter i ett program. |
COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE |
COM+-programmen som körs som en NT-tjänst kanske inte markeras som poolade eller återanvända. |
COMADMIN_E_SYSTEMAPP |
Det går inte att utföra den här åtgärden i systemprogrammet. |
COMADMIN_E_USER_IN_SET |
En eller flera användare har redan tilldelats en lokal partitionsuppsättning. |
If adding an explanation is necessary, it might look like this:
COMADMIN_E_USERPASSWDNOTVALID – Användarlösenordet är inte giltigt |
Identiteten eller lösenordet som angetts i programmet är inte giltigt. |