Menginterpretasikan Kode Kesalahan
Setelah Anda menentukan aplikasi mana yang merupakan sumber masalah, Anda perlu mencari tahu kesalahan apa yang telah terjadi. Kesalahan dimunculkan dan dilaporkan dalam format yang berbeda, tergantung pada bahasa yang digunakan aplikasi Anda.
Di Microsoft Visual C++, nilai keberhasilan, peringatan, dan kegagalan dikembalikan menggunakan angka 32-bit yang dikenal sebagai HRESULT. Untuk daftar nilai HRESULT yang ditentukan sistem, lihat file header Winerror.h yang disertakan dengan Windows SDK. File ini mencakup semua kode kesalahan COM+ dan deskripsi. Untuk informasi selengkapnya tentang nilai HRESULT , lihat Penanganan Kesalahan.
Dalam bahasa Java, instans com.ms.com.ComFailException dilemparkan untuk menunjukkan kegagalan, di mana objek ComFailException menentukan HRESULT. Instans com.ms.com.ComSuccessException menunjukkan keberhasilan dengan nilai pengembalian False. Untuk informasi tentang menginterpretasikan pengecualian ini, lihat dokumentasi Microsoft Visual J++.
Catatan
Proses server aplikasi COM+ yang menghosting objek Visual J++ tidak akan menganggur (bahkan dengan objek aktif nol) kecuali Anda menonaktifkan penelusuran kesalahan JIT di IDE VJ6. Untuk informasi tentang cara melakukannya, lihat dokumentasi Visual J++.
Di Visual Basic, Anda dapat mengambil nilai HRESULT dengan memeriksa properti Err.Number. Deskripsi kesalahan dapat diambil dengan properti Err.Description.
Anda juga dapat menggunakan utilitas ERRLOOK di Microsoft Visual Studio untuk mengambil pesan kesalahan sistem atau pesan kesalahan modul. ERRLOOK mengambil teks pesan kesalahan secara otomatis jika Anda menyeret dan meletakkan nilai heksadesimal atau desimal dari debugger Visual Studio atau aplikasi berkemampuan Automation lainnya. Anda juga dapat memasukkan nilai dengan mengetikkannya atau menempelkannya dari clipboard IDE dan mengklik opsi Cari .
Metode C++ berikut mencetak deskripsi kesalahan, berdasarkan HRESULT input.
#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);
}
Tabel berikut ini menyediakan deskripsi kode kesalahan umum di COM+.
Kode kesalahan | Definisi |
---|---|
COMADMIN_E_ALREADYINSTALLED |
Objek sudah terdaftar. |
COMADMIN_E_APP_FILE_READFAIL |
Terjadi kesalahan saat membaca file aplikasi. |
COMADMIN_E_APP_FILE_VERSION |
Nomor versi tidak valid dalam file aplikasi. |
COMADMIN_E_APP_FILE_WRITEFAIL |
Terjadi kesalahan saat menulis ke file aplikasi. |
COMADMIN_E_APPDIRNOTFOUND |
Direktori penginstalan aplikasi tidak ditemukan. |
COMQC_E_APPLICATION_NOT_QUEUED |
Hanya aplikasi COM+ yang ditandai "antrean" yang dapat dibuat menggunakan moniker "antrean". |
COMADMIN_E_APPLICATIONEXISTS |
Aplikasi sudah diinstal. |
COMADMIN_E_APPLID_MATCHES_CLSID |
CLSID dengan GUID yang sama dengan ID aplikasi baru sudah diinstal pada komputer ini. |
COMADMIN_E_APP_NOT_RUNNING |
Aplikasi yang ditentukan saat ini tidak berjalan. |
COMADMIN_E_AUTHENTICATIONLEVEL |
Tidak dapat mengatur tingkat autentikasi yang diperlukan untuk permintaan pembaruan. |
COMADMIN_E_BADPATH |
Jalur file tidak valid. |
COMADMIN_E_BADREGISTRYLIBID |
ID pustaka tipe terdaftar tidak valid. |
COMADMIN_E_BADREGISTRYPROGID |
ProgID komponen hilang atau rusak. |
COMADMIN_E_CAN_NOT_EXPORT_APP_PROXY |
Proksi aplikasi tidak dapat diekspor. |
COMADMIN_E_CAN_NOT_START_APP |
Gagal memulai aplikasi karena merupakan aplikasi pustaka atau proksi aplikasi. |
COMADMIN_E_CAN_NOT_EXPORT_SYS_APP |
Aplikasi sistem tidak dapat diekspor. |
COMADMIN_E_CANT_SUBSCRIBE_TO_COMPONENT |
Pengguna tidak dapat berlangganan komponen ini karena komponen mungkin telah diimpor. |
COMADMIN_E_CANTCOPYFILE |
Terjadi kesalahan saat menyalin file. |
COMADMIN_E_CLSIDORIIDMISMATCH |
CLSID atau IID file aplikasi tidak cocok dengan DLL yang sesuai. |
COMADMIN_E_COMP_MOVE_BAD_DEST |
Pemindahan komponen gagal karena aplikasi tujuan tidak ada lagi. |
COMADMIN_E_COMP_MOVE_LOCKED |
Pemindahan komponen tidak diizinkan karena aplikasi sumber atau tujuan adalah aplikasi sistem atau saat ini dikunci terhadap perubahan. |
COMADMIN_E_COMPFILE_BADTLB |
Pustaka tipe tidak dapat dimuat. |
COMADMIN_E_COMPFILE_CLASSNOTAVAIL |
DLL tidak mendukung komponen yang tercantum dalam pustaka jenis. |
COMADMIN_E_COMPFILE_DOESNOTEXIST |
File ini tidak ada. |
COMADMIN_E_COMPFILE_GETCLASSOBJ |
Metode GetClassObject gagal di DLL. |
COMADMIN_E_COMPFILE_LOADDLLFAIL |
DLL tidak dapat dimuat. |
COMADMIN_E_COMPFILE_NOREGISTRAR |
Pencatat komponen yang direferensikan dalam file ini tidak tersedia. |
COMADMIN_E_COMPFILE_NOTINSTALLABLE |
File tidak berisi komponen atau informasi komponen. |
COMADMIN_E_COREQCOMPINSTALLED |
Komponen dalam DLL yang sama sudah diinstal. |
COMADMIN_E_DLLLOADFAILED |
DLL tidak dapat dimuat. |
COMADMIN_E_DLLREGISTERSERVER |
Fungsi DllRegisterServer gagal saat komponen diinstal. |
COMADMIN_E_EVENTCLASS_CANT_BE_SUBSCRIBER |
Kelas peristiwa tidak dapat dikonfigurasi sebagai komponen pelanggan. Saat upaya dilakukan untuk membuat langganan dengan kelas peristiwa sebagai pelanggan, kesalahan ini dikembalikan. |
COMADMIN_E_INVALIDUSERIDS |
Satu atau beberapa pengguna dalam file aplikasi tidak valid. |
COMADMIN_E_KEYMISSING |
Objek tidak ditemukan dalam katalog. |
COMADMIN_E_LIB_APP_PROXY_INCOMPATIBLE |
Aplikasi pustaka dan proksi aplikasi tidak kompatibel. Kesalahan ini dikembalikan ketika upaya dilakukan untuk mengekspor proksi aplikasi dan properti aktivasi aplikasi adalah pustaka. |
COMADMIN_E_NOREGISTRYCLSID |
CLSID komponen hilang atau rusak. |
COMADMIN_E_NOSERVERSHARE |
Tidak ada berbagi file server yang tersedia. |
COMADMIN_E_NOTCHANGEABLE |
Perubahan pada objek ini dan sub-objeknya telah dinonaktifkan. |
COMADMIN_E_NOTDELETEABLE |
Fungsi hapus telah dinonaktifkan untuk objek ini. |
COMADMIN_E_NOTINREGISTRY |
Objek tidak ditemukan dalam registri. |
COMADMIN_E_NOUSER |
Satu atau beberapa pengguna tidak valid. |
COMADMIN_E_OBJECT_DOES_NOT_EXIST |
Salah satu objek yang ditentukan tidak dapat ditemukan. |
COMADMIN_E_OBJECT_PARENT_MISSING |
Salah satu objek yang dimasukkan atau diperbarui bukan milik koleksi induk yang valid. |
COMADMIN_E_OBJECTERRORS |
Terjadi kesalahan saat mengakses satu atau beberapa objek. Untuk informasi selengkapnya, lihat koleksi ErrorInfo. |
COMADMIN_E_OBJECTEXISTS |
Objek yang Anda coba tambahkan atau ganti namanya sudah ada. |
COMADMIN_E_OBJECTINVALID |
Satu atau beberapa properti objek hilang atau tidak valid. |
COMADMIN_E_OBJECTNOTPOOLABLE |
Objek ini tidak dapat dikumpulkan. |
COMADMIN_E_PROPERTYSAVEFAILED |
Satu atau beberapa pengaturan properti tidak valid atau bertentangan satu sama lain. |
COMADMIN_E_PROPERTY_OVERFLOW |
Nilai properti terlalu besar. |
COMADMIN_E_REGFILE_CORRUPT |
File pendaftaran rusak. |
COMADMIN_E_REGISTERTLB |
Sistem tidak dapat mendaftarkan pustaka tipe. |
COMADMIN_E_REGISTRARFAILED |
Terjadi kesalahan saat berada di pencatat komponen. |
COMADMIN_E_REMOTEINTERFACE |
Informasi antarmuka hilang atau diubah. |
COMADMIN_E_REQUIRES_DIFFERENT_PLATFORM |
Operasi ini tidak diaktifkan pada platform ini. |
COMADMIN_E_ROLE_DOES_NOT_EXIST |
Peran yang ditetapkan ke komponen, antarmuka, atau metode tidak ada dalam aplikasi. |
COMADMIN_E_ROLEEXISTS |
Peran sudah ada. |
COMADMIN_E_SERVICENOTINSTALLED |
Layanan tidak diinstal. |
COMADMIN_E_SESSION |
Versi katalog server tidak didukung. |
COMADMIN_S_SOMEALREADYPAUSED |
Satu atau beberapa proses aplikasi yang ditentukan sudah dijeda. |
COMADMIN_S_SOMEALREADYRUNNING |
Satu atau beberapa proses aplikasi yang ditentukan sudah berjalan. |
COMADMIN_E_START_APP_NEEDS_COMPONENTS |
Untuk memulai aplikasi, Anda harus memiliki komponen dalam aplikasi. |
COMADMIN_E_SVCAPP_NOT_POOLABLE_OR_RECYCLABLE |
Aplikasi COM+ yang berjalan sebagai layanan NT mungkin tidak ditandai sebagai terkumpul atau didaur ulang. |
COMADMIN_E_SYSTEMAPP |
Operasi ini tidak dapat dilakukan pada aplikasi sistem. |
COMADMIN_E_USER_IN_SET |
Satu atau beberapa pengguna sudah ditetapkan ke set partisi lokal. |
COMADMIN_E_USERPASSWDNOTVALID |
Identitas atau kata sandi yang diatur pada aplikasi tidak valid. |