2013-07-22 4 views
1

J'ai une application .NET 3.5 WPF qui référence et utilise l'assembly d'interopérabilité primaire Microsoft.MSHTML. Sur ma machine dev le temps de démarrage chaud pour l'application est assez rapide, généralement < 1 sec. Cependant, sur les machines de production, il est ~ 10 secondes (totalement inacceptable). J'ai fait des recherches et j'ai découvert qu'il s'agit en fait de deux versions de l'ÉFVP de MSHTML qui circulent, une qui est entièrement signée et une qui n'est pas entièrement signée ou quelque chose comme ça. J'ai récupéré le GAC entièrement signé du GAC sur ma machine de développement pour mettre des machines de production, plutôt que ce que j'avais fait qui mettait celui de C:\Program Files\Microsoft.NET\Primary Interop Assemblies sur les machines de production. Au début, cela a résolu le problème, apparemment c'était un problème de sécurité avec le PIA «pas entièrement signé» devant être «vérifié» ou une telle absurdité comme ça..NET MSHTML PIA provoque un temps de démarrage de l'application très lent sur certaines machines

Maintenant, cependant, il semble que même cela ne fonctionne pas et l'application prend encore ~ ​​10 secondes à charger (chaud), presque tout ce qui est dû à la référence MSHTML. J'ai un contrôle total sur l'application et la configuration (image système) de toutes les machines de production sur lesquelles elle fonctionnera, donc je peux changer tout ce dont j'ai besoin pour que cela fonctionne (BTW tout fonctionne sous Windows 7 avec IE 9).

Apparemment, il est possible de générer votre propre gestionnaire d'interopérabilité mshtml, mais je ne suis pas sûr de savoir comment le faire ou si cela pourrait même aider.

+1

http://msdn.microsoft.com/en-us/library/bb629393.aspx –

+0

qui a travaillé comme un charme, merci! –

Répondre

0

La solution était d'ajouter simplement les lignes suivantes dans mon fichier app.config:

<runtime> 
    <generatePublisherEvidence enabled="false"/> 
</runtime>