Microsoft KB Archive/171359
Article ID: 171359
Article Last Modified on 7/11/2005
- Microsoft OLE 4.0, when used with:
- Microsoft Platform Software Development Kit-January 2000 Edition
This article was previously published under Q171359
Dllhost.exe is the system-provided surrogate that is used by a COM DLL (in- process) server to run in its own separate process. When the default (machine-wide) authentication is set to None on Windows NT 4.0, an error occurs during the launching of Dllhost.exe and it terminates. The client's creation API gets a CO_E_SERVER_EXEC_FAILURE error. This error does not occur under Windows 95.
This is caused by a bug in the security initialization for Dllhost.exe.
Set the machine-wide COM authentication level to a value other than None to resolve this problem. You can use the DCOMCNFG utility to change the machine-wide authentication level. If the machine-wide authentication level must be None, then you can use a custom surrogate instead of Dllhost.exe.
Microsoft has confirmed this to be a bug in the Microsoft products listed at the beginning of this article.
This problem was corrected in Windows NT Service Pack 4 and Windows 2000.
Steps to Reproduce Behavior
- Use DCOMCNFG to set the machine-wide authentication level to None. To do this, run Dcomcnfg.exe, select the Default Properties tab and from the Default Authentication Level list box choose None. Click OK.
- Run OLEVIEW and select any in-process DLL server object. Select the Implementation tab, and select the Use Surrogate Process check box. Select the Registry tab (this will add the DllSurrogate named value under the AppID key). From the OLEVIEW menu, choose Object...CoCreateInstance flags, select CLSCTX_LOCAL_SERVER and deselect all other items.
- Instantiate the object from OLEVIEW. You will get the error message.
Additional query words: kbbuglist
Keywords: kbbug kbfix kboswin2000fix kboswinnt400sp4fix KB171359