[This is preliminary documentation and subject to change]

# Important Changes in ASP

ASP has undergone several important changes and enhancements. If you are updating your application from a previous version of ASP, you should be aware of these changes.

Note To learn about new ASP features, see What's New in ASP.

- Buffering On by Default In IIS 4.0, response buffering was off by default. In IIS 5.1, unless a script specifically turns off buffering, its output is always buffered. This means that the final output is sent to the client at the completion of processing or when the script calls the Response.Flush method. When upgrading from IIS 4.0 to IIS 5.1, the IIS 4.0 settings are maintained. Therefore, response buffering remains off until it is turned on. For more information, see the Buffering Content section in the Sending Content to the Browser topic.
- Response.IsClientConnected In IIS 4.0, Response.IsClientConnected returned the correct information only if an ASP file sent content to the browser. In IIS 5.1, an ASP file can use the IsClientConnected property prior to sending content to the browser. For more information, see IsClientConnected.
- Improved Include File Security In IIS 4.0, when an include file resided in a virtual root mapped to a physical path, ASP did not use the security credentials of the physical path to process the file. In IIS 5.1, ASP applies the credentials of the physical path when processing include files. For more information, see Including Files.
- Default Document Query String Behavior In IIS 5.1, if an .asp (or .cdx) file is configured as the default document, it can now receive a query string from a URL that does not specify the default document. For example, the URLs `http://www.microsoft.com/default.asp?newuser=true` and `http://www.microsoft.com/?newuser=true` will both send a query string value to the default .asp file.
- Transaction Flags IIS 4.0 used the required, requires new, and not supported transaction flags to indicate that ASP was starting a new transaction. In IIS 5.1, this behavior is unchanged. However, if an .asp file executes a transacted .asp file using the new Server.Execute or Server.Transfer methods, then the transaction flag state is maintained for the second .asp file. If the second .asp file's transaction flags indicate that transactions are supported or required, then the existing transaction will be used and a new transaction will not be started.
- Behavior of Both-Modeled Objects A Both-Modeled COM object which does not support the Free-Threaded Marshaller will fail if it is stored in Application state. Both-Modeled components must aggregate the Free-Threaded Marshaller to be stored in Application state.
- Configurable Entries Moved to the Metabase The following IIS 4.0 registry entries are now in the metabase:
  - ProcessorThreadMax
  - ErrorsToNTLog

  - For IIS 5.1, all configurable parameters for ASP can be modified from the metabase.

- Security for Local Server COM Objects IIS uses a new Windows COM feature called cloaking to enable local server applications instantiated from an .asp file to have the security context of the originating client. In previous versions, the identity assigned to the local server COM object depended on the identity of the user who created the object instance.
- Objects Released Earlier In IIS 4.0, COM objects were only released when ASP finished processing a page. In IIS 5.1, if a COM object does not use the OnEndPage method and the reference count for the object is zero, then the object is released prior to the completion of processing.
- Improved UTF-8 and Multi-byte Character Support In IIS 5.1 and IIS 6.0, UTF-8 and multi-byte characters are supported in all of the ASP built-in objects. This includes form data returned in the Response.QueryString and Response.Form collections.

© 1997-2001 Microsoft Corporation. All rights reserved.