When This Error Hits
You're trying to install or export a COM+ application via Component Services, or maybe you're scripting it with COMAdmin.COMAdminCatalog.InstallApplication. Halfway through, boom — you get COMADMIN_E_APP_FILE_READFAIL (0X80110408). The exact message: "An error occurred reading the application file." I've seen this most often on Windows Server 2016 and 2019, but it shows up on 2012 R2 and Windows 10 too. Common trigger: you're pointing to a file on a network share, or the file's sitting in a deeply nested folder.
Root Cause (Short Version)
COM+ runs under the NETWORK SERVICE account by default. That account can't read the application file. Could be NTFS permissions, a flaky UNC path, or the file's corrupted. The culprit here is almost always a permissions mismatch — the file lives somewhere the COM+ runtime doesn't have access to.
Less common but still real: the application file (usually a .MSI or .CAB) got truncated during transfer, or the path exceeds 260 characters. Don't bother checking file signature — that's rarely the issue for this specific error code.
The Fix — Step by Step
Step 1: Check File Permissions
Right-click the application file, go to Properties → Security. You need to grant NETWORK SERVICE (or Everyone if you're in a pinch) at least Read & Execute permissions. On a domain-joined server, SYSTEM usually has access, but NETWORK SERVICE doesn't inherit it. Add it explicitly.
icacls "C:\Path\To\YourApp.MSI" /grant "NETWORK SERVICE":(R)
This command grants read access. Run it as Administrator.
Step 2: Move the File Locally
If the file's on a network share, copy it to a local folder like C:\Temp\. COM+ doesn't play nice with UNC paths in some Windows builds. You'd think a modern OS would handle this, but nope — I've seen Server 2019 reject perfectly accessible network shares for no good reason. Local path avoids the issue entirely.
Step 3: Check Path Length
Windows has a 260-character path limit unless you've enabled long paths via Group Policy. Open a command prompt and check:
dir "C:\full\path\to\your\file.msi"
If the path is over 260 chars, shorten it. Rename folders, move the file closer to root. You don't need to enable long path support — it's a rabbit hole that often causes other COM+ issues.
Step 4: Verify File Integrity
Corrupted files happen. If the MSI or CAB file came from a download, check its hash. Compare it to the source. A quick way:
certutil -hashfile "C:\Path\To\File.msi" SHA256
If the hash doesn't match, re-download the file. Don't skip this — I wasted two hours once on a file that was 3 bytes short.
Step 5: Re-register COM+ Dependencies
Rare, but if the above doesn't work, COM+ itself might be hosed. Re-register its core DLLs:
regsvr32 comadmin.dll
regsvr32 comsvcs.dll
regsvr32 colbact.dll
Then restart the COM+ System Application service. Run services.msc, find it, right-click → Restart.
Still Failing? Check These
- Antivirus: Some endpoint protection (looking at you, McAfee) blocks COM+ from reading .MSI files. Temporarily disable real-time scanning and try again.
- Application Pool Identity: If you're running COM+ under a custom identity (not NETWORK SERVICE), that account needs permissions too. Check in Component Services → Computers → My Computer → COM+ Applications → right-click your app → Properties → Identity tab.
- Event Viewer: Look under Windows Logs → System for COM+ or DCOM error events. They often give you the exact file path that's failing.
This error is stubborn, but 9 times out of 10 it's permissions or a local path fix. Don't overthink it.