Problème prévention données, visual Studio 2008 + .net + vista SP1

Problème prévention données, visual Studio 2008 + .net + vista SP1 - C#/.NET managed - Programmation

Marsh Posté le 28-01-2009 à 09:34:00    

Bonjour, à tous et toutes, je viens querrir vôtre aide afin de solutionner un petit problème avec visual studio:
 
Il m'arrive assez souvent d'avoir des problèmes de droits.  
Et là j'ai un exemple concrêt:
 
Je souhaite faire un petit programme qui intègre une page web. J'utilise donc le module webbrowser de .net 3.5
 
Je compile, j'exécute et ça marche. Mais si je vais sur une page web java, j'ai droit à  
 


Signature du problème :
  Nom d’événement de problème: BEX
  Nom de l’application: ie2.exe
  Version de l’application: 1.0.0.0
  Horodatage de l'application: 4979f04e
  Nom du module par défaut: StackHash_aecd
  Version du module par défaut: 0.0.0.0
  Horodateur du module par défaut: 00000000
  Décalage de l’exception: 07b3de88
  Code de l’exception: c0000005
  Données d’exception: 00000008
  Version du système: 6.0.6001.2.1.0.256.6
  Identificateur de paramètres régionaux: 1036
  Information supplémentaire n° 1: aecd
  Information supplémentaire n° 2: 1d53c8c397fae15cdf307d3984842b76
  Information supplémentaire n° 3: 759e
  Information supplémentaire n° 4: 6318f0a67efce462de0948a62167cb76

 
Et j'ai un message en bas qui s'affiche avec "le_nom_de_mon_prog a été fermé pour "la prévention de l'exécution des données"
Avec uniquement ça comme aide:
 


Qu’est-ce que la prévention de l’exécution des données ?
 
La prévention de l’exécution des données (DEP, Data Execution Prevention) est une fonctionnalité de sécurité qui protège votre ordinateur contre les virus et autres menaces à la sécurité. Des programmes dangereux peuvent attaquer Windows en cherchant à exécuter du code provenant d’emplacements de la mémoire système réservés à Windows et à d’autres programmes autorisés. Ces types d’attaques peuvent endommager vos programmes et vos fichiers.
 
La prévention de l’exécution des données peut protéger votre ordinateur en analysant vos programmes pour s’assurer qu’ils utilisent la mémoire système de manière sécurisée. Si la prévention de l’exécution des données remarque l’utilisation incorrecte en mémoire d’un programme sur votre ordinateur, celui-ci ferme le programme et vous en avertit.
 


 
Le problème c'est que dans mon projet, j'ai déjà spécifié full droit dans option du projet sécurité.  :heink:  
 
Maintenant un autre test, je prends une source faite par une autre personne sur developper.com, je prend son binaire qui est un exemple de navigateur basé sur le composant webbrowser je lance, je vais sur une page java ==> ça marche.
Je prend son code qui est fourni, je compile via visual studio 2008 (visiblement ça a été fait sous le 2005) ==> le navigateur marche, mais idem si je vais sur une page java, même problème qu'avec mon code!  :sweat:  
 
Qu'est ce qu'il faut que je fasse pour arriver à faire fonctionner le composant webbrowser + java sous 2008 avec vista???  :??:  
 
Merci d'avance
 
EDIT: je précise que j'ai bien tenté de mettre dans système ==> performance prévention des données de cocher le choix 2 et de rajouter mon programme mais il me dit que la prévention des données doit être activé pour ce programme pour qu'il soit exécuté. :(
 
EDIT: je précise que mon vista est à jours via windows update. :/


Message édité par burn2 le 28-01-2009 à 10:14:08

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 28-01-2009 à 09:34:00   

Reply

Marsh Posté le 28-01-2009 à 09:59:48    

Pour rajouter sur le problème je viens de faire un autre test:
Je prend mon exécutable compilé sous vista. Je le lance sous xp je vais sur le même lien pour tester java, ou je lance un applet java (par exemple rubicube) ça marche!
Sous vista je me prend cette erreur. :'(
C'est vraiment une plaie vista.


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 29-01-2009 à 09:56:27    

Personne n'aurait d'idée?
Merci d'avance. :(


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 29-01-2009 à 19:29:45    

perso aucune idée. mais je ne développe pas avec VISTA :s


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le 29-01-2009 à 19:38:13    

Moi je suis bloqué, sinon je serais sous linux :/
Et là j'avoue ne vraiment pas comprendre le problème. :(


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 31-01-2009 à 16:14:43    

ça doit être lié à la façon de compilé le programme.  
Je suis sure que si tu cherches dans la documentation, tu trouveras.


---------------
quand un homme raisonne mal c'est qu'il n'a pas les données pour raisonner mieux (diderot)
Reply

Marsh Posté le 31-01-2009 à 16:26:31    

Bah je vois pas ou. J'ai cherché partout avec ces mots clefs et y a rien. C'est vista qui pose problème visiblement vu que l'exécutable passe sous xp.  
C'est du à la sécurité de vista.


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 31-01-2009 à 16:30:29    

Et, juste par hasard, tu n'aurais pas aussi dans Vista, dans ton panneau de configuration ( peut-être outils d'admin ) la gestion des droits de .NET ?  
Je sais que sous 2k et xp, si je voulais lancer une appli d'un disque réseau, je devais aller changer des droits là-dedans pour "truster" l'application !

Reply

Marsh Posté le 31-01-2009 à 17:56:52    

Heu pas à ma connaissance? Si tu as plus d'info je suis preneur je reregarderais quand je serais au boulot.


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 31-01-2009 à 18:05:59    

Je n'ai pas Vista .. je sais juste qu'il est possible ( utile? ) de configurer les droits .NET à partir du panneau de config dans 2K et XP ...

Reply

Marsh Posté le 31-01-2009 à 18:05:59   

Reply

Marsh Posté le 31-01-2009 à 18:08:53    

Je vais vérifier ça au cas ou... Bien que là je doute quand même vu que c'est un module interne au kernel avec la prévention de donnée. Donc là. Enfin à voir.
Je vous tien au courant lundi.


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 05-02-2009 à 12:42:21    

Tu as la dernière version de la JRE ?

Reply

Marsh Posté le 05-02-2009 à 14:26:24    

Oui, et ça le fait quelque soit le pluggin "externe" tel flash.  
J'ai eu une mise à jour du framework .net sous vista, je n'ai pas réessayé depuis pour voir si le problème était réglé...


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 14-02-2009 à 09:52:05    

Je suis seul sur la machine, je suis le seul en vista du moins le serveur TSE est encore sous windows 2003 server. ET j'ai bien sur dégagé depuis le début l'uac tellement c'était lourdingue lol.
Mais il faudrait que je me replonge dessus... Pour voir si je trouve l'origine...  


---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 16-02-2009 à 09:36:44    

Je commence à en avoir marre du C# et de microsoft mais c'est pas possible.
J'essaye de manipuler word à travers une application C#, j'utilise du code fait par microsoft, ou par d'autres personnes chez qui ça marchait (histoire d'être sûr que là aussi ce n'est pas moi qui déconne...),

 

et je me prends un:

Citation :


L'exception System.InvalidCastException n'a pas été gérée
  Message="Impossible d'effectuer un cast d'un objet COM de type 'Microsoft.Office.Interop.Word.ApplicationClass' en type d'interface 'Microsoft.Office.Interop.Word._Application'. Cette opération a échoué, car l'appel QueryInterface sur le composant COM pour l'interface avec l'IID '{00020970-0000-0000-C000-000000000046}' a échoué en raison de l'erreur suivante : Bibliothèque non inscrite. (Exception de HRESULT : 0x8002801D (TYPE_E_LIBNOTREGISTERED))."
  Source="Microsoft.Office.Interop.Word"
  StackTrace:
       à Microsoft.Office.Interop.Word.ApplicationClass.set_Visible(Boolean prop)
       à Cofidis_lettres.Form1.buttonValider_Click(Object sender, EventArgs e)
       à System.Windows.Forms.Control.OnClick(EventArgs e)
       à System.Windows.Forms.Button.OnClick(EventArgs e)
       à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       à System.Windows.Forms.Control.WndProc(Message& m)
       à System.Windows.Forms.ButtonBase.WndProc(Message& m)
       à System.Windows.Forms.Button.WndProc(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    à System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       à System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       à System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       à System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       à System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       à System.Windows.Forms.Application.Run(Form mainForm)
       à Cofidis_lettres.Program.Main()
       à System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       à System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
       à System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
       à System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
       à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
       à System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
       à System.Activator.CreateInstance(ActivationContext activationContext)
       à Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
       à System.Threading.ThreadHelper.ThreadStart_Context(Object state)
       à System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       à System.Threading.ThreadHelper.ThreadStart()
  InnerException:

 


la ligne qui déconne en question d'après le débugueur:

Citation :


aWord.Visible=true;

 

Pourtant tirée directement du code de microsoft, ou de divers exemples! Si je l'enlève bah pas de problème à priori, sauf que je suis bien content de pas voir le word s'afficher...
   


Message édité par burn2 le 16-02-2009 à 09:38:53

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 16-02-2009 à 09:39:15    

Cofidis :D
 
Perso je regarderai de ce côté avant de raler : en raison de l'erreur suivante : Bibliothèque non inscrite

Reply

Marsh Posté le 16-02-2009 à 09:46:46    

[hs]Cofidis c'est une private joke avec tu es "le crédis de nos soucis" et du C# qui me prend la tête à chaque fois que j'en fais :D bref hs off[/hs]

 

Ouep mais le problème c'est que la référence vers la dll en question c'est à dire microsoft word, est bien rajoutée, à partir de là, je ne vois pas quoi faire d'autre...

 

Ce qui m'énerve c'est qu'a l'époque de visual sudio 2005 et de xp, je n'avais pas tous ces problèmes là avec le C#...

 

EDIT: bon ben j'ai retenté sans l'affichage de word, et en fait bah ça fait pareil. J'avoue ne pas comprendre où est le problème. Car la référence vers la dll en question a été rajoutée... A partir de là quelque soit l'exemple de manipulation de word que je prends, ça pause problème et me sort cette erreur n'importe ou sur du code concernant word. (que ça soit l'ouverture d'un doc word, l'affichage de word tout cours...)

 

Concrètement à moins que les docs ne soient plus bonnes sur visual studio 2008 (je remercie microsoft au passage...) je ne vois pas ou est le problème. :/


Message édité par burn2 le 16-02-2009 à 09:55:31

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 16-02-2009 à 10:01:32    

Ah ben pour changer, ça marche parfaitement sous XP...

 

:fou: Je commence légèrement à en avoir marre de vista. :D mais alors très très légèrement.


Message édité par burn2 le 16-02-2009 à 10:04:25

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 16-02-2009 à 10:42:05    

Par contre une petite question...
Je suis donc perso sous vista + visual studio 2008 et microsoft word 2003.

 

J'ai fais le test avec xp et word 2003 et ça marche.

 

Le problème, c'est que sur le serveur ou doit tourner cette application c'est du windows serveur 2003 (bon là c'est pareil que xp) mais avec word 2000. Du coup la référence n'est pas bonne. Et du coup ben ça marche pas, je fais comment pour la référence sur un word inférieur? :)
Parce que là ça me met une erreur de mémoire partagée mais bon je pense que la cause c'est que la version de word n'est pas bonne ce qui est logique...


Message édité par burn2 le 16-02-2009 à 10:42:36

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 16-02-2009 à 12:34:07    

Bon visiblement je n'avais pas le SP1 de visual studio express... Ce qui expliquerait les problèmes.
Mais autre problème! Du fait que ça soit la version express de visual studio, je n'ai pas le sdk donc pas de TlbImp.exe pour faire ma dll!
Je fais comment sachant que je n'ai pas word 2000 d'installé sur mon pc? ET que si je link directement sur msword9.olb il ne veut pas???
Edit:
j'ai trouvé l'outil sauf que si j'essaye d'en faire une dll:

Citation :


TlbImp2.exe MSWORD9.OLB /out=My.word9.Interop.dll
Microsoft (R) .NET Framework Type Library to Assembly Converter v2.0.50727
Copyright (C) Microsoft Corporation.  All rights reserved.

 

TlbImp : warning TI3008 : Type '_Global' is invalid and may only be partially co
nverted.
TlbImp : warning TI3008 : Type '_Application' is invalid and may only be partial
ly converted.
TlbImp : warning TI3008 : Type '_Document' is invalid and may only be partially
converted.
TlbImp : warning TI3008 : Type 'Range' is invalid and may only be partially conv
erted.
TlbImp : warning TI3008 : Type 'Hyperlink' is invalid and may only be partially
converted.
TlbImp : warning TI3021 : Error while importing type: parameter referenced a typ
e library that is not available (type: 'Shapes'; parameter: 'Type'; method: 'Add
Callout').
TlbImp : warning TI3008 : Type 'Shapes' is invalid and may only be partially con
verted.
TlbImp : warning TI3008 : Type 'ShapeRange' is invalid and may only be partially
 converted.
TlbImp : warning TI3008 : Type 'Shape' is invalid and may only be partially conv
erted.
TlbImp : warning TI3008 : Type 'TextFrame' is invalid and may only be partially
converted.
TlbImp : warning TI3008 : Type 'InlineShape' is invalid and may only be partiall
y converted.
TlbImp : warning TI3008 : Type 'CalloutFormat' is invalid and may only be partia
lly converted.
TlbImp : warning TI3008 : Type 'ColorFormat' is invalid and may only be partiall
y converted.
TlbImp : warning TI3008 : Type 'ConnectorFormat' is invalid and may only be part
ially converted.
TlbImp : warning TI3008 : Type 'FillFormat' is invalid and may only be partially
 converted.
TlbImp : warning TI3021 : Error while importing type: parameter referenced a typ
e library that is not available (type: 'FreeformBuilder'; parameter: 'SegmentTyp
e'; method: 'AddNodes').
TlbImp : warning TI3008 : Type 'FreeformBuilder' is invalid and may only be part
ially converted.
TlbImp : warning TI3008 : Type 'LineFormat' is invalid and may only be partially
 converted.
TlbImp : warning TI3008 : Type 'PictureFormat' is invalid and may only be partia
lly converted.
TlbImp : warning TI3008 : Type 'ShadowFormat' is invalid and may only be partial
ly converted.
TlbImp : warning TI3008 : Type 'ShapeNode' is invalid and may only be partially
converted.
TlbImp : warning TI3021 : Error while importing type: parameter referenced a typ
e library that is not available (type: 'ShapeNodes'; parameter: 'EditingType'; m
ethod: 'SetEditingType').
TlbImp : warning TI3008 : Type 'ShapeNodes' is invalid and may only be partially
 converted.
TlbImp : warning TI3008 : Type 'TextEffectFormat' is invalid and may only be par
tially converted.
TlbImp : warning TI3008 : Type 'ThreeDFormat' is invalid and may only be partial
ly converted.
TlbImp : warning TI3008 : Type 'DefaultWebOptions' is invalid and may only be pa
rtially converted.
TlbImp : warning TI3008 : Type 'WebOptions' is invalid and may only be partially
 converted.
TlbImp : warning TI3008 : Type 'Global' is invalid and may only be partially con
verted.
TlbImp : warning TI3008 : Type 'Application' is invalid and may only be partiall
y converted.
TlbImp : error TI1000 : The type library importer encountered an unexpected exce
ption: System.TypeLoadException - Impossible de charger le type 'My.word9.Intero
p.ApplicationEvents_Event' à partir de l'assembly 'My.word9.Interop, Version=8.1
.0.0, Culture=neutral, PublicKeyToken=null'.

 


EDIT2: c'est passé sous xp... ça commence à devenir une habitude...


Message édité par burn2 le 16-02-2009 à 12:50:49

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 16-02-2009 à 16:27:10    

Bon j'avance...
J'ai du tout recoder pour word 2000 car les fonctions ne sont pas les mêmes mais j'ai juste un petit problème....

 

Bon j'automatise une fusion, le problème c'est que le fichier en entrée qu'on me "fourgue" est normalisé à l'arrache... Je n'ai aucun contrôle sur cette source.
Du coup ils m'envoient du .csv avec des , en séparateur et une ligne vide à la fin.
Je ne sais pas du tout quel type d'encodage est utilisé, on fait comment pour savoir???

 

Parce que j'avais eu l'idée de parcourir le fichier et de supprimer les lignes vides afin d'enlever ce qui peut poser problème pour le publipostage, mais lors de la copie via streamreader et streamwritter, mes accents deviennent des caractères du genre:

Citation :


Num�ro

 

:??: J'avoue que j'ai utilisé mon quota d'astuce pour arriver à faire marcher la chose...

 

L'astuce que j'avais trouvé et qui marche pour word 2003, c'est de créer une feuille excel ou je lie les données dedans en données externe. Problème:
Sous word 2000, je ne sais pas quelle requête il faut lui passer dans le code lors de l'ouverture de la source... Sous word 2003 aucun problème mais la même requête sous word 2000 n'est pas bonne. :( Je suis preneur de toute idée....

 

En gros sous word 2003 c'est ça la requête:

Citation :


object sqlQuery = @"Select * from `Feuil1$sourceClientTMP`";
                    msWord.ActiveDocument.MailMerge.OpenDataSource(@"T:\COFSOR\sourceFusion.xls", ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref sqlQuery, ref missing, ref missing, ref missing);

 

Mais la même requête sous le 2000 ne passe pas...


Message édité par burn2 le 16-02-2009 à 16:29:49

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le 16-02-2009 à 16:41:43    

Bon j'ai trouvé, j'ai spécifié l'encodage, après diverses tentatives il s'agirait d'utf7!

 

Y a pas idée vraiment :'(
Y a pas moyen de récupérer l'encodage d'un fichier pour l'utiliser? Parce que si je fixe en dur dès qu'ils vont changer je vais être bloqué.

 

EDIT: désolé pour le monologue. :/


Message édité par burn2 le 16-02-2009 à 16:42:09

---------------
"C'est vrai qu'un type aussi pénible de jour on serait en droit d'espérer qu'il fasse un break de nuit mais bon …"
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed