[This is preliminary documentation and subject to change]

# Counters Component

The Counter component creates a Counters object that can create, store, increment, and retrieve any number of individual counters.

A counter is a persistent value that contains an integer. You can manipulate a counter with the Get, Increment, Set, and Remove methods of the Counters object. Once you create the counter, it persists until you remove it.

Counters do not automatically increment on an event like a page hit. You must manually set or increment counters using the Set and Increment methods.

Counters are not limited in scope. Once you create a counter, any page on your site can retrieve or manipulate its value. For example, if you increment and display a counter named hits in a page called Page1.asp, and you increment hits in another page called Page2.asp, both pages will increment the same counter. If you hit Page1.asp, and increment hits to 34, hitting Page2.asp will increment hits to 35. The next time you hit Page1.asp, hits will increment to 36.

All counters are stored in a single text file, Counters.txt, which is located in the same directory as the counters.dll file.

After you update, create or delete a counter, the IIS Services may need to be restarted before you see the change in the Counters.txt file.

File Name | Description
Counters.dll | The Counters component.
Counters.txt | The file that stores all individual counters on a site. Counters.txt is a UTF8-encoded file. You can have any Unicode characters in a counter name.

###### Syntax

Create the Counters object one time on your server by adding the following to the Global.asa file:

    <OBJECT
    RUNAT=Server
    SCOPE=Application
    ID=CounterPROG></OBJECT>

Note Only create one Counters object in your site. This single Counters object can create any number of individual counters.

For Internet Information Services on Windows® 95 or later, a Counters component has already been specified in the Global.asa file in the default virtual directory. You can work with the Counters object the component creates as if it were a built-in object by calling Counters.Get, Counters.Increment, Counters.Remove, and Counters.Set. You should not create another instance of the Counters object.

###### Methods

Get | Returns the value of the counter.
Increment | Increases the counter by 1.
Remove | Removes the counter from the Counters.txt file.
Set | Sets the value of the counter to a specific integer.

###### Example

Create an instance of the Counters object in the Global.asa file with the ID attribute set to `Counter`:

--- Global.asa ---

    <OBJECT
    RUNAT=Server
    SCOPE=Application
    ID=Counters
    PROG>
    </OBJECT>

You can then use that Counters object on one page to create all the counters you need:

    Setting the Site Counter to <%= Counters.Set("SiteCounter", 1).

Then on another page you can increment the counter in the following manner:

    You are visitor number<%= Counters.Increment("SiteCounter ") %> to this page.

© 1997-2001 Microsoft Corporation. All rights reserved.