Microsoft KB Archive/251264

= PRB: App.Logevent Does Not Work in Components that You Call from ASP on Windows 2000 =

Article ID: 251264

Article Last Modified on 2/28/2007

-

APPLIES TO


 * Microsoft Windows 2000 Server
 * Microsoft Windows 2000 Advanced Server
 * Microsoft Windows 2000 Professional Edition
 * Microsoft Internet Information Services 5.0

-



This article was previously published under Q251264



IMPORTANT: This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry



SYMPTOMS
If you run a Visual Basic server-side COM component from an ASP page on Windows 2000, you are not able to use the App.Logevent functionality by default.



CAUSE
By default, components that are run from an ASP page are created under the IUSR_MACHINENAME account. This account is a member of the "guests" group, and Windows 2000 changed the security privileges needed to write the application event log.



RESOLUTION
WARNING: If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

In order to give members of the guest group the ability to write to the application event log, you must change the registry value HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\RestrictGuestAccess from a 1 to a 0. You must reboot for the change to take effect.



STATUS
This behavior is by design.



Steps to Reproduce Behavior
  Create a new ASP page with the following code: <%       dim obj set obj = Server.CreateObject("LogEventTest.cLogEvent") obj.TestEventLog set obj = nothing response.write "Test has been performed. Check your EventLog to see if changes have been made." %>  Save the page as Test.asp in your Inetpub\Wwwroot directory. With Visual Basic 6.0, create an ActiveX .dll file. From the Project menu, select Properties, and then select Unattended Execution and Retained in Memory. Rename Class1 as cLogEvent .</li> Rename the project from project1 to LogEventTest .</li>  Paste the following code into cLogEvent: Public Sub TestEventLog App.Logevent "Test of the Event Log" End Sub </li> Compile the .dll file.</li> Using your browser, navigate to http://Localhost/Test.asp.</li> Check your eventlog to see if any events were logged.</li></ol>

Keywords: kbinterop kbprb KB251264

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.