84 messaggi dal 06 settembre 2002
Devo condividere in una Application un istanza all'oggetto Scripting Dictionary ma quando tento di istanziare l'oggetto nella chiamata:

Set Application( "ActState") = CreateObject( "Scripting.Dictionary")

mi dice 'picche', ovvero:

Application object error 'ASP 0197 : 80004005'

Disallowed object use

/ContentPrgHsSto.asp, line 59

Cannot add object with apartment model behavior to the application intrinsic object.

Mentre una cosa di questo tipo:

Set Session( "p2") = CreateObject( "Scripting.Dictionary")

Non dà alcun errore.

Cosa si può fare per risolvere ciò, nel senso di poter memorizare un oggetto scripting dictionary in una application variable?

Un ciao a tutti.

Loris Cabianca
www.ServiceName.Com
Domain Registration and Hosting
php, perl, mysql, asp, wap, filemaker
Proprio perchè l'oggetto Session viene creato nello stesso Thread dell''oggetto Dictionary, mentra la variabile Application è una variabile che ha un modello di thread particolare.

Quindi picche..

--
Andrea Palmatè
84 messaggi dal 06 settembre 2002
Ok.

Quale caratteristica dovrebbe avere un oggetto per poter essere 'allocato' in un variabile Application?

Dove potrei trovare info?

grazie

Loris Cabianca
www.ServiceName.Com
Domain Registration and Hosting
php, perl, mysql, asp, wap, filemaker
84 messaggi dal 06 settembre 2002
non è stato facile ma grazie all'imbeccata di Palmatè sono riuscito a capire la motivazione e come superare il problema. Dunque da MSDN si legge:

You should not use the Apartment threading model for components that you plan to give application scope. Creating an instance of an Apartment model object with Server.CreateObject will generate an error. For example, if in the following script MyObj was an apartment-threaded object, the script would generate an error.

Quindi una Activex DLL con il modello 'Apartament threading' non funzia, bisogna utilizzare il modello 'Thread singolo'.

Chiedo cosa può significare questo cambiamento di modello in relazione alle performace sull'uso di risorse come cpu, ram?

Come posso sapere se gli oggetti forniti in IIS e vari altri attivi/installati nella macchina supportino uno 'scope' a livello di application? Sono con delle prove esplicite?

Un ciao a tutti.

Loris Cabianca
www.ServiceName.Com
Domain Registration and Hosting
php, perl, mysql, asp, wap, filemaker
Prova a metterli in una variabile Application..

Comunque gli oggetti a Thread singolo sono molto più dispendiosi a livello di RAM.

--
Andrea Palmatè

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.