2010-08-10 6 views
0

Salutations, Nous avons une application écrite en .net 3.5 qui utilise wcf et aussi wpf à des fins de présentation. Nous avons mis en place un déploiement sans contact, les utilisateurs cliquent sur le raccourci Internet et l'application démarre immédiatement. Parfois, lorsque nous mettons à jour une application, il faut environ 30 minutes pour mettre à jour les applications client, le serveur et la base de données. Nous souhaitons afficher des informations telles que "Mise à jour de l'application. Veuillez réessayer plus tard" pendant notre travail de mise à jour afin que les utilisateurs ne puissent pas exécuter l'application ou effectuer des actions au cas où l'application est déjà en cours. Comment pouvons-nous obtenir ce genre de fonctionnalité? PS. Nous ne pouvons pas utiliser Click-Once.Déploiement sans contact et informations sur la mise à jour

Répondre

0

Créer une méthode supplémentaire sur votre service WCF public bool ApplicationIsOnline()

mise en œuvre de cette méthode: ajouter un appsetting dans le configfile du service qui indique si est une application en ligne ou non. Lorsque vous démarrez la mise à niveau, modifiez l'appellation en false, une fois l'installation terminée, modifiez-la à nouveau.

Au démarrage de votre programme, vous appelez cette méthode. Lorsque l'appel WCF est vrai, vous pouvez démarrer l'application, lorsque le call renvoie false Vous pouvez afficher un message à l'utilisateur pour réessayer plus tard.

+0

ok, mais j'ai besoin de vérifier cette situation aussi lorsque l'application est déjà en cours d'exécution. Je ne veux pas le vérifier avant chaque demande, alors comment puis-je l'obtenir? –

+0

Il y a 2 options pour cela: 1: Modifier toutes les opérations de service pour appeler ApplicationOnline() et, si elle est fausse, lancer une exception spécifique que vous devez attraper clientide. 2: Créez un ServiceBehavior personnalisé et implémentez la méthode Validate pour vous assurer que l'application est en ligne. Si ce n'est pas le cas, lancez une exception et attrapez-la sur le client. –

Questions connexes