2009-08-26 3 views
0

J'ai récemment ajouté une référence de service WCF à mon programme. Lorsque j'effectue une installation propre de ce programme, tout semble fonctionner comme prévu. Mais, quand j'installe le programme sur un client qui a déjà une version précédente (sans la nouvelle référence de service) installé, je reçois une exception me disant que le point de terminaison par défaut pour ce service particulier n'a pas pu être trouvé.Le service WCF ne fonctionne pas après la mise à jour du programme

Il semble que appname.exe.config ne soit pas mis à jour avec les nouveaux paramètres de point de terminaison. Y at-il une raison à cela et comment puis-je forcer le programme d'installation à remplacer le fichier de configuration? J'utilise le projet d'installation Visual Studio 2008 par défaut avec RemovePreviousVersions défini sur True.

Mise à jour: Mon programme encrypte les paramètres section après la première manche avec le code suivant

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 
     ConfigurationSection section = config.GetSection(sectionKey); 
     if (section != null) 
     { 
      if (!section.SectionInformation.IsProtected) 
      { 
       if (!section.ElementInformation.IsLocked) 
       { 
        section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 
        section.SectionInformation.ForceSave = true; 
        config.Save(ConfigurationSaveMode.Full); 
       } 
      } 
     } 

Quand je ne lance pas le programme avant d'installer la nouvelle version du app.config est mis à jour.

Répondre

0

Vous avez raison de dire que c'est le fichier de configuration qui n'est pas mis à jour.

Il existe plusieurs possibilités:

  • Le programme d'installation a l'ancienne version du fichier de configuration
  • Le programme d'installation ne dispose pas d'un fichier de configuration et le programme utilise l'ancien sur la machine

Essayez d'abord de désinstaller le projet, puis installez et vérifiez que le fichier de configuration a bien été copié.

+0

Je l'ai déjà essayé et le fichier de configuration est en cours de copie ré. L'application fonctionne correctement lorsque je le désinstalle pour la première fois. Cela fonctionne également lorsque je supprime le fichier de configuration actuel et que je le mets à jour par la suite. –

+0

Vérifiez que vous n'avez pas plusieurs copies du programme ou du fichier de configuration sur la machine –

+0

Je viens d'installer l'ancienne version sur un pc propre, j'ai exécuté le programme, je l'ai fermé et j'ai installé la nouvelle version. La même erreur s'est produite. Après cela, j'ai désinstallé le programme et cette fois fait la même chose, mais sans exécuter le programme et cela a fonctionné. Mon fichier app.config contient une section de paramètres cryptés. Cela pourrait-il causer le problème? –