Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 6 Forum > Newsgroup microsoft.public.fr.devinternet
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 20/12/2007, 08h14
Arthur
 
Messages: n/a
Par défaut ASP, Variable application, CreateObject et IIS6

Bonjour Ã*** tous,

Je tente de porter une application ASP basée sur IIS4, NT4 et SQL Server 7
vers une plate-forme IIS6, Windows 20003 et SQL Server 2000.

Dans le global.asa, dans Application_OnStart se trouve le code suivant :

Set ObjMoa = Nothing
Set Application("MOA") = Nothing
Set objMOA = Server.CreateObject("MOA.Application")
Set Application("MOA") = objMOA

Il s'agit d'utiliser dans toute l'application, dans un espace commun Ã***
toutes les sessions une instance d'une DLL écrite en VB6. Ce code fonctionne
parfaitement sous la plate-forme actuelle, mais sous la plate-forme cible,
j'obtiens le message d'erreur suivant :

Objet Application erreur 'ASP 0197 : 80004005'

Utilisation d'objet non autorisée

/LM/W3SVC/1/Root/Test/global.asa, ligne 22

Seuls les objets dont le comportement est celui du modèle Apartment peuvent
être ajoutés Ã*** l'objet intrinsèque de l'application.


L'erreur intervient sur la ligne Set Application("MOA") = objMOA et ne se
produit plus si elle est modifiée en Set Session("MOA") = objMOA.

Comment obtenir les propriétés de partage d'une variable application sous
IIS6 dans ce cas?


Merci par avance de vos réponses.

Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 23/12/2007, 19h43
Sylvain Lafontaine
 
Messages: n/a
Par défaut Re: ASP, Variable application, CreateObject et IIS6

Je n'en suis plus très sûr mais à mon avis, vous ne pouvez pas sans réécrire
ou recompiler le serveur COM MOA.Application. Le problème ici est que si le
serveur MOA.Application n'est pas de type Apartment, l'ajout d'un tel objet
sour IIS4 faisait automatiquement passer le mode de fonctionnement de IIS4
du modèle multi-thread vers le modèle single-thread; avec la sérieuse perte
de performance concomitante affectant *tous* les sites web situés sur ce
serveur. Avec IIS6, ce comportement a été banni.

Avec IIS, il est possible de déclarer un répertoire web comme étant une
application (isolée des autres applications et de l'application de base) et
de configurer ce répertoire avec des propriétés distinctes. Peut-être qu'en
regardant de ce côté-là, vous pourrez reconfigurer cette (sous-)application
web de façon à pouvoir stocker votre objet compilé sous ce modèle
particulier. C'est simplement une vague idée que je vous dis-là car c'est
le genre de chose que je n'ai plus regardé depuis plusieurs années.

La méthode moderne de partager de l'information entre plusieurs sessions est
tout simplement de stocker l'information dans une base de donnée. Toutes
les autres méthodes entrainent généralement une perte de performance; y
compris dans les cas où vous stockez un object de type Apartment (je ne suis
plus sûr de l'exact dénomination ici; les années ayant fait leur ravage)
puisque vous êtes alors dans la situation où un object potentiellement
inutilisé pendant de longues périodes (minutes, heures, jours, mois et même
années, décennies) occupe inutilement de la place en mémoire vide pendant
tout ce temps-là.

Même dans le cas de Session, MS décourageait l'utilisation de stockage
d'objets "stateful" et la méthode recommandée était d'avoir des objets de
type "stateless" managé par Transaction Server (avec l'information
permanente requise par ces "business objects" stockée dans une bdd).
Aujourd'hui, MS décourage tout simplement l'utilisation de COM dans tous les
cas de nouveau développement. Ce n'est pas pour rien que VB6 n'est plus
vendu par MS (et probablement qu'il va vous être difficile de trouver de la
documentation à ce sujet-là sur internet pour la même raison).

Finalement, comme ma mémoire a subi l'outrage des années, il est fort
possible que je vous ai donnée des renseignements plus ou moins faux dans ce
post; ayant moi-même pratiquement tout oublié à ce sujet-là. Si c'est le
cas, je m'en excuse d'avance mais je n'ai pas l'intention de commencer une
vive discussion ici ou d'entamer des recherches approfondies sur internet.
Pour moi, VB6 a été submergé dans les profondeurs du passé et ce n'est pas
là quelque chose que j'ai l'intention de ramener à la surface; mis-à-part
quelques vagues reflets sous-marins.

Dans votre cas, si vous n'êtes pas capable de résoudre ce problème soit en
reconfigurant IIS6, en recompilant MOA.Application sous un autre mode ou en
remplaçant MOA.Application par autre chose; la meilleure idée serait
peut-être tout simplement de conserver NT4; possiblement en le faisant
tourner dans une machine virtuelle.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Arthur" <Arthur***discussions.microsoft.com> wrote in message
news8973F42-6583-4ECD-92D7-6585DFC7457C***microsoft.com...
> Bonjour à tous,
>
> Je tente de porter une application ASP basée sur IIS4, NT4 et SQL Server 7
> vers une plate-forme IIS6, Windows 20003 et SQL Server 2000.
>
> Dans le global.asa, dans Application_OnStart se trouve le code suivant :
>
> Set ObjMoa = Nothing
> Set Application("MOA") = Nothing
> Set objMOA = Server.CreateObject("MOA.Application")
> Set Application("MOA") = objMOA
>
> Il s'agit d'utiliser dans toute l'application, dans un espace commun à
> toutes les sessions une instance d'une DLL écrite en VB6. Ce code
> fonctionne
> parfaitement sous la plate-forme actuelle, mais sous la plate-forme cible,
> j'obtiens le message d'erreur suivant :
>
> Objet Application erreur 'ASP 0197 : 80004005'
>
> Utilisation d'objet non autorisée
>
> /LM/W3SVC/1/Root/Test/global.asa, ligne 22
>
> Seuls les objets dont le comportement est celui du modèle Apartment
> peuvent
> être ajoutés à l'objet intrinsèque de l'application.
>
>
> L'erreur intervient sur la ligne Set Application("MOA") = objMOA et ne se
> produit plus si elle est modifiée en Set Session("MOA") = objMOA.
>
> Comment obtenir les propriétés de partage d'une variable application sous
> IIS6 dans ce cas?
>
>
> Merci par avance de vos réponses.
>



Réponse avec citation
  #3 (permalink)  
Vieux 23/12/2007, 19h43
Sylvain Lafontaine
 
Messages: n/a
Par défaut Re: ASP, Variable application, CreateObject et IIS6

Je n'en suis plus très sûr mais à mon avis, vous ne pouvez pas sans réécrire
ou recompiler le serveur COM MOA.Application. Le problème ici est que si le
serveur MOA.Application n'est pas de type Apartment, l'ajout d'un tel objet
sour IIS4 faisait automatiquement passer le mode de fonctionnement de IIS4
du modèle multi-thread vers le modèle single-thread; avec la sérieuse perte
de performance concomitante affectant *tous* les sites web situés sur ce
serveur. Avec IIS6, ce comportement a été banni.

Avec IIS, il est possible de déclarer un répertoire web comme étant une
application (isolée des autres applications et de l'application de base) et
de configurer ce répertoire avec des propriétés distinctes. Peut-être qu'en
regardant de ce côté-là, vous pourrez reconfigurer cette (sous-)application
web de façon à pouvoir stocker votre objet compilé sous ce modèle
particulier. C'est simplement une vague idée que je vous dis-là car c'est
le genre de chose que je n'ai plus regardé depuis plusieurs années.

La méthode moderne de partager de l'information entre plusieurs sessions est
tout simplement de stocker l'information dans une base de donnée. Toutes
les autres méthodes entrainent généralement une perte de performance; y
compris dans les cas où vous stockez un object de type Apartment (je ne suis
plus sûr de l'exact dénomination ici; les années ayant fait leur ravage)
puisque vous êtes alors dans la situation où un object potentiellement
inutilisé pendant de longues périodes (minutes, heures, jours, mois et même
années, décennies) occupe inutilement de la place en mémoire vide pendant
tout ce temps-là.

Même dans le cas de Session, MS décourageait l'utilisation de stockage
d'objets "stateful" et la méthode recommandée était d'avoir des objets de
type "stateless" managé par Transaction Server (avec l'information
permanente requise par ces "business objects" stockée dans une bdd).
Aujourd'hui, MS décourage tout simplement l'utilisation de COM dans tous les
cas de nouveau développement. Ce n'est pas pour rien que VB6 n'est plus
vendu par MS (et probablement qu'il va vous être difficile de trouver de la
documentation à ce sujet-là sur internet pour la même raison).

Finalement, comme ma mémoire a subi l'outrage des années, il est fort
possible que je vous ai donnée des renseignements plus ou moins faux dans ce
post; ayant moi-même pratiquement tout oublié à ce sujet-là. Si c'est le
cas, je m'en excuse d'avance mais je n'ai pas l'intention de commencer une
vive discussion ici ou d'entamer des recherches approfondies sur internet.
Pour moi, VB6 a été submergé dans les profondeurs du passé et ce n'est pas
là quelque chose que j'ai l'intention de ramener à la surface; mis-à-part
quelques vagues reflets sous-marins.

Dans votre cas, si vous n'êtes pas capable de résoudre ce problème soit en
reconfigurant IIS6, en recompilant MOA.Application sous un autre mode ou en
remplaçant MOA.Application par autre chose; la meilleure idée serait
peut-être tout simplement de conserver NT4; possiblement en le faisant
tourner dans une machine virtuelle.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: sylvain aei ca (fill the blanks, no spam please)


"Arthur" <Arthur***discussions.microsoft.com> wrote in message
news8973F42-6583-4ECD-92D7-6585DFC7457C***microsoft.com...
> Bonjour à tous,
>
> Je tente de porter une application ASP basée sur IIS4, NT4 et SQL Server 7
> vers une plate-forme IIS6, Windows 20003 et SQL Server 2000.
>
> Dans le global.asa, dans Application_OnStart se trouve le code suivant :
>
> Set ObjMoa = Nothing
> Set Application("MOA") = Nothing
> Set objMOA = Server.CreateObject("MOA.Application")
> Set Application("MOA") = objMOA
>
> Il s'agit d'utiliser dans toute l'application, dans un espace commun à
> toutes les sessions une instance d'une DLL écrite en VB6. Ce code
> fonctionne
> parfaitement sous la plate-forme actuelle, mais sous la plate-forme cible,
> j'obtiens le message d'erreur suivant :
>
> Objet Application erreur 'ASP 0197 : 80004005'
>
> Utilisation d'objet non autorisée
>
> /LM/W3SVC/1/Root/Test/global.asa, ligne 22
>
> Seuls les objets dont le comportement est celui du modèle Apartment
> peuvent
> être ajoutés à l'objet intrinsèque de l'application.
>
>
> L'erreur intervient sur la ligne Set Application("MOA") = objMOA et ne se
> produit plus si elle est modifiée en Set Session("MOA") = objMOA.
>
> Comment obtenir les propriétés de partage d'une variable application sous
> IIS6 dans ce cas?
>
>
> Merci par avance de vos réponses.
>



Réponse avec citation
 
Réponse
Tags: , , , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
Utiliser CreateObject("Excel.Application") sans installer Excel Christophe Pin Newsgroup microsoft.public.fr.excel 3 30/04/2008 10h52
IIS6.0 FTP avec AD Bernard Newsgroup microsoft.public.fr.windows.server.active_directory 1 05/11/2007 14h12
Variable contenant une autre variable mémoire SL3News Newsgroup microsoft.public.fr.dotnet.csharp 7 06/10/2007 08h02
Passer une variable dans une autre variable FdeCourt Newsgroup fr.comp.os.msdos 2 18/06/2007 09h34
Re: IIS6 et PHP: impossible? jbongran Newsgroup microsoft.public.fr.iis 0 10/04/2007 22h17


Fuseau horaire GMT. Il est actuellement 23h45.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,33023 seconds with 11 queries