PRB: Scripting.Dictionary Object Fails in ASP Application Scope (194803)
The information in this article applies to:
- Microsoft Visual InterDev 6.0
This article was previously published under Q194803 SYMPTOMS
When storing the Scripting.Dictionary object in an Application variable the
following error occurs:
Application object error 'ASP 0197 : 80004005'
Disallowed object use /xxx.asp, line 2. Cannot add object with
apartment model behavior to the application intrinsic object.
CAUSE
The Dictionary object's threading model is incorrectly set to "Both" in the
registry when Internet Information Server (IIS) 4.0 is initially installed.
This is documented in the IIS documentation, which also includes
instructions to update the ThreadingModel registry key. When Visual Studio
6.0 is installed it updates/corrects the threading model of the Dictionary
object, setting it to "Apartment."
RESOLUTION
To work around this problem, create all global Scripting.Dictionary objects
with a session scope as follows:
<%Set Session("SD")= Server.CreateObject("Scripting.Dictionary")%>
STATUS
This behavior is by design.
REFERENCES
Please refer to the following Windows NT 4.0 Option Pack Product
Documentation for Scope and Threading guidelines:
Microsoft Internet Information Server
Programmers Reference
Creating Components for ASP
Planning for Component Development
Component Design Guidelines
Please refer to the following Windows NT 4.0 Option Pack Release Notes for
information on the Scripting.Dictionary object registry key:
Internet Information Server Version 4.0 Release Notes
Modification Type: | Major | Last Reviewed: | 4/25/2001 |
---|
Keywords: | kberrmsg kbprb KB194803 |
---|
|