When dealing with COM+ Event System errors on Windows Server 2003, you'll typically encounter GUIDs formatted like this:
{DF540FFA-D787-4FDF-82E4-4BD5C1302F23}-{00000000-0000-0000-0000-000000000000}-{00000000-0000-0000-0000-000000000000}
The first segment represents the actual application GUID, while the subsequent zeros are placeholder values. Error code 800706BB specifically indicates "The server is not operational," which often points to a misconfigured or missing COM+ component.
Since the CLUSDB method didn't work in your case, here are more reliable approaches:
Method 1: Registry Search with PowerShell
This PowerShell script recursively searches the registry for COM+ applications:
function Find-ComAppByGuid {
param([string]$targetGuid)
$comRoot = "HKLM:\SOFTWARE\Microsoft\COM3"
if (-not (Test-Path $comRoot)) {
$comRoot = "HKLM:\SOFTWARE\Microsoft\COM"
}
Get-ChildItem -Path $comRoot -Recurse | ForEach-Object {
if ($_.Property -contains "CLSID") {
$appGuid = $_.GetValue("CLSID")
if ($appGuid -like "*$targetGuid*") {
[PSCustomObject]@{
Path = $_.PSPath
Name = $_.GetValue("")
CLSID = $appGuid
}
}
}
}
}
Find-ComAppByGuid "DF540FFA-D787-4FDF-82E4-4BD5C1302F23"
Method 2: Component Services MMC Snap-in
For a GUI approach:
- Open Component Services (dcomcnfg.exe)
- Navigate to Component Services > Computers > My Computer > COM+ Applications
- Right-click each application and check Properties > Advanced tab
- Match the Application ID against your GUID
When standard methods fail, try these advanced techniques:
Using COMAdmin Catalog
$catalog = New-Object -ComObject COMAdmin.COMAdminCatalog
$apps = $catalog.GetCollection("Applications")
$apps.Populate()
foreach ($app in $apps) {
if ($app.Key -eq "{DF540FFA-D787-4FDF-82E4-4BD5C1302F23}") {
Write-Host "Found application: $($app.Name)"
Write-Host "Description: $($app.Description)"
break
}
}
Event Log Correlation
Search for related events around the same timestamp:
Get-WinEvent -LogName "Application" |
Where-Object { $_.TimeCreated -ge (Get-Date).AddHours(-1) } |
Sort-Object TimeCreated -Descending
Beyond GUID identification, consider these corrective actions:
- Verify DCOM permissions (dcomcnfg > Component Services > Computers)
- Check if the COM+ application is properly installed and registered
- Review any recent changes to the system's COM+ configuration
- Ensure the COM+ System Application service is running
To avoid similar issues:
# Example: COM+ application health check script
$comAdmin = New-Object -ComObject COMAdmin.COMAdminCatalog
$apps = $comAdmin.GetCollection("Applications")
$apps.Populate()
$report = foreach ($app in $apps) {
try {
$status = $comAdmin.GetApplicationInstanceIDFromProcessID($app.Key)
[PSCustomObject]@{
Name = $app.Name
GUID = $app.Key
Status = if ($status) { "Running" } else { "Stopped" }
}
} catch {
[PSCustomObject]@{
Name = $app.Name
GUID = $app.Key
Status = "Error: $($_.Exception.Message)"
}
}
}
$report | Export-Csv -Path "C:\COMPlus_Health_Report.csv" -NoTypeInformation
When troubleshooting COM+ Event System errors on Windows Server 2003, you might encounter cryptic GUID references like:
{DF540FFA-D787-4FDF-82E4-4BD5C1302F23}-{00000000-0000-0000-0000-000000000000}-{00000000-0000-0000-0000-000000000000}
HRESULT: 800706BB
This typically indicates a failure in marshaling a COM+ subscriber. The GUID represents either a COM+ application or component registration.
Registry Search Methodology
First attempt locating the GUID in these registry paths:
HKEY_CLASSES_ROOT\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3
For a comprehensive registry search:
REG QUERY HKCR /f "{DF540FFA-D787-4FDF-82E4-4BD5C1302F23}" /s
REG QUERY HKLM\SOFTWARE /f "{DF540FFA-D787-4FDF-82E4-4BD5C1302F23}" /s
Component Services Inspection
Navigate through Component Services (dcomcnfg.exe):
- Open Component Services
- Expand Computers → My Computer → COM+ Applications
- Check each application's properties for matching GUIDs
Using COM+ Administration Objects
Create a VBScript to enumerate COM+ applications:
Set catalog = CreateObject("COMAdmin.COMAdminCatalog")
Set apps = catalog.GetCollection("Applications")
apps.Populate
For Each app In apps
WScript.Echo "Name: " & app.Name & " ID: " & app.Key
Next
Event Subscription Analysis
Check the COM+ Event System subscriptions:
Set catalog = CreateObject("ComAdmin.COMAdminCatalog")
Set subscriptions = catalog.GetCollection("Subscriptions")
subscriptions.Populate
For Each sub In subscriptions
WScript.Echo "Subscription: " & sub.Name & " InterfaceID: " & _
sub.Value("InterfaceID") & " SubscriberCLSID: " & sub.Value("SubscriberCLSID")
Next
This specific error (RPC_S_CALL_FAILED_DNE) often indicates:
- The COM+ application is not properly registered
- DCOM permissions issues
- Network-related problems for remote components
Check DCOM configurations using:
dcomcnfg.exe → Component Services → Computers → My Computer → DCOM Config
For clustered environments where CLUSDB is missing:
cluster.exe /cluster:<cluster_name> res "COM+ Application" /priv
Or use PowerShell (if available):
Get-ClusterResource | Where-Object {$_.Type -like "*COM*"} | Format-List *