Partager via


Problèmes de configuration du serveur et du client dans les déploiements ClickOnce

Si vous utilisez Internet Information Services (IIS) sur Windows Server et que votre déploiement contient un type de fichier que Windows ne reconnaît pas, tel qu’un fichier Microsoft Word, IIS refuse de transmettre ce fichier et votre déploiement ne réussit pas.

En outre, certains serveurs web et logiciels d’application web, tels que ASP.NET, contiennent une liste de fichiers et de types de fichiers que vous ne pouvez pas télécharger. Par exemple, ASP.NET empêche le téléchargement de tous les fichiers Web.config . Ces fichiers peuvent contenir des informations sensibles telles que des noms d’utilisateur et des mots de passe.

Bien que cette restriction ne provoque aucun problème pour le téléchargement de fichiers ClickOnce principaux tels que des manifestes et des assemblys, cette restriction peut vous empêcher de télécharger des fichiers de données inclus dans le cadre de votre application ClickOnce. Dans ASP.NET, vous pouvez résoudre cette erreur en supprimant le gestionnaire qui interdit le téléchargement de ces fichiers à partir du gestionnaire de configuration IIS. Pour plus d’informations, consultez la documentation du serveur IIS.

Certains serveurs web peuvent bloquer des fichiers avec des extensions telles que .dll, .configet .mdf. Les applications Windows incluent généralement des fichiers avec certaines de ces extensions. Si un utilisateur tente d’exécuter une application ClickOnce qui accède à un fichier bloqué sur un serveur Web, une erreur se produit. Au lieu de débloquer toutes les extensions de fichier, ClickOnce publie chaque fichier d’application avec une extension de fichier .deploy par défaut. Par conséquent, l’administrateur doit uniquement configurer le serveur Web pour débloquer les trois extensions de fichier suivantes :

  • .application

  • .manifest

  • .déployer

    Toutefois, vous pouvez désactiver cette option en désactivant l’option Utiliser l’extension de fichier . deploy » dans la boîte de dialogue Options de publication, auquel cas vous devez configurer le serveur Web pour débloquer toutes les extensions de fichier utilisées dans l’application.

Vous devrez configurer .manifest, .application et .deploy, par exemple, si vous utilisez IIS où vous n’avez pas installé le .NET Framework, ou si vous utilisez un autre serveur web (par exemple, Apache).

ClickOnce et Secure Sockets Layer (SSL)

Une application ClickOnce fonctionne correctement sur SSL, sauf lorsque le navigateur déclenche une alerte concernant le certificat SSL. L’invite peut être déclenchée en cas de problème avec le certificat, par exemple lorsque les noms de site ne correspondent pas ou que le certificat a expiré. Pour que ClickOnce fonctionne sur une connexion SSL, assurez-vous que le certificat est up-to-date et que les données du certificat correspondent aux données du site.

Authentification proxy et ClickOnce

ClickOnce prend en charge l’authentification proxy intégrée Windows à partir de .NET Framework 3.5. Aucune directive machine.config spécifique n’est requise. ClickOnce ne prend pas en charge d’autres protocoles d’authentification tels que Basic ou Digest.

Vous pouvez également appliquer un correctif logiciel à .NET Framework 2.0 pour activer cette fonctionnalité. Pour plus d’informations, consultez CORRECTIF : Message d’erreur lorsque vous essayez d’installer une application ClickOnce que vous avez créée dans .NET Framework 2.0 sur un ordinateur client configuré pour utiliser un serveur proxy : « Authentification proxy requise ».

Pour plus d’informations, consultez <l’élément defaultProxy> (paramètres réseau).

Compatibilité des navigateurs ClickOnce et Web

Actuellement, les installations ClickOnce ne démarrent que si l’URL du manifeste de déploiement est ouverte à l’aide du navigateur. Un déploiement dont l’URL est lancée à partir d’une autre application, telle que Microsoft Office Outlook, démarre correctement uniquement si Internet Explorer est défini comme navigateur web par défaut.

Note

Mozilla Firefox est pris en charge si le fournisseur de déploiement n’est pas vide ou si l’extension Assistant Microsoft .NET Framework est installée. Cette extension est empaquetée avec .NET Framework 3.5 SP1. Pour la prise en charge de XBAP, le plug-in NPWPF est activé si nécessaire.

Activer des applications ClickOnce via un script de navigateur

Si vous avez développé une page web personnalisée qui lance une application ClickOnce à l’aide d’un script actif, vous pouvez constater que l’application ne se lancera pas sur certains ordinateurs. Le navigateur contient un paramètre tel que l’invite automatique pour les téléchargements de fichiers, ce qui affecte ce comportement. Ce paramètre de navigateur est généralement répertorié sous la catégorie Téléchargements et est activé par défaut. Lorsque ce paramètre est désactivé, toute tentative d’activation d’une application ClickOnce par programmation (par exemple, en affectant son URL à la document.location propriété) est bloquée. Dans ce cas, les utilisateurs peuvent lancer des applications uniquement via un téléchargement initié par l’utilisateur, par exemple en cliquant sur un lien hypertexte défini sur l’URL de l’application.

Problèmes de configuration de serveur supplémentaires

Autorisations d’administrateur requises

Vous devez disposer d’autorisations d’administrateur sur le serveur cible si vous publiez avec HTTP. IIS requiert ce niveau d’autorisations. Si vous ne publiez pas à l’aide de HTTP, vous avez uniquement besoin d’une autorisation d’écriture sur le chemin cible.

Problèmes d’authentification du serveur

Lorsque vous publiez sur un serveur distant dont l’option « Accès anonyme » est désactivée, vous recevez l’avertissement suivant :

"The files could not be downloaded from http://<remoteserver>/<myapplication>/.  The remote server returned an error: (401) Unauthorized."

Note

Vous pouvez faire fonctionner l’authentification NTLM (NT challenge-response) si le site demande des informations d’identification autres que vos informations d’identification par défaut et, dans la boîte de dialogue de sécurité, cliquez sur OK lorsque vous êtes invité à enregistrer les informations d’identification fournies pour les sessions ultérieures. Toutefois, cette solution de contournement ne fonctionnera pas pour l’authentification de base.

Utiliser des serveurs web tiers

Si vous déployez une application ClickOnce à partir d’un serveur Web autre que IIS, vous pouvez rencontrer un problème si le serveur retourne le type de contenu incorrect pour les fichiers ClickOnce clés, tels que le manifeste de déploiement et le manifeste de l’application. Pour résoudre ce problème, consultez la documentation d’aide de votre serveur web sur l’ajout de nouveaux types de contenu au serveur et vérifiez que tous les mappages d’extension de nom de fichier répertoriés dans le tableau suivant sont en place.

Extension de nom de fichier Type de contenu
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce et lecteurs mappés

Si vous utilisez Visual Studio pour publier une application ClickOnce, vous ne pouvez pas spécifier un lecteur mappé comme emplacement d’installation. Toutefois, vous pouvez modifier l’application ClickOnce à installer à partir d’un lecteur mappé à l’aide du générateur de manifeste et de l’éditeur (Mage.exe et MageUI.exe). Pour plus d’informations, consultez Mage.exe (outil de génération et d’édition de manifeste) et MageUI.exe (outil de génération de manifeste et d’édition, client graphique)

Protocole FTP non pris en charge pour l’installation d’applications

ClickOnce prend en charge l’installation d’applications à partir de n’importe quel serveur web HTTP 1.1 ou serveur de fichiers. FTP, le protocole de transfert de fichiers, n’est pas pris en charge pour l’installation d’applications. Vous pouvez utiliser FTP uniquement pour publier des applications. Le tableau suivant récapitule ces différences :

Type d’URL Descriptif
Ftp:// Vous pouvez publier une application ClickOnce à l’aide de ce protocole.
http:// Vous pouvez installer une application ClickOnce à l’aide de ce protocole.
https:// Vous pouvez installer une application ClickOnce à l’aide de ce protocole.
file:// Vous pouvez installer une application ClickOnce à l’aide de ce protocole.

Pare-feu Windows

Par défaut, Windows active le Pare-feu Windows. Si vous développez votre application sur un ordinateur sur lequel Windows est installé, vous pouvez toujours publier et exécuter des applications ClickOnce à partir du serveur local exécutant IIS. Toutefois, vous ne pouvez pas accéder à ce serveur exécutant IIS à partir d’un autre ordinateur, sauf si vous ouvrez le Pare-feu Windows. Consultez l’aide de Windows pour obtenir des instructions sur la gestion du Pare-feu Windows.

Windows Server : Activer les extensions de serveur FrontPage

Les extensions serveur FrontPage de Microsoft sont requises pour la publication d’applications sur un serveur web Windows qui utilise HTTP.

Par défaut, Windows Server n’a pas d’extensions serveur FrontPage installées. Si vous souhaitez utiliser Visual Studio pour publier sur un serveur web Windows Server qui utilise HTTP avec les extensions serveur FrontPage, vous devez d’abord installer les extensions serveur FrontPage. Vous pouvez effectuer l’installation à l’aide de l’outil Gérer votre serveur d’administration dans Windows Server.

Windows Server : types de contenu verrouillés

IIS sur Windows Server 2003 verrouille tous les types de fichiers à l’exception de certains types de contenu connus (par exemple, .htm, .html, .txt, etc.). Pour activer le déploiement d’applications ClickOnce à l’aide de ce serveur, vous devez modifier les paramètres IIS pour autoriser le téléchargement de fichiers de type .application, .manifest et tous les autres types de fichiers personnalisés utilisés par votre application.

Si vous déployez à l’aide d’un serveur IIS, exécutez inetmgr.exe et ajoutez de nouveaux types de fichiers pour la page web par défaut :

  • Pour les extensions .application et .manifest , le type MIME doit être « application/x-ms-application ». Pour les autres types de fichiers, le type MIME doit être « application/octet-stream ».

  • Si vous créez un type MIME avec l’extension «< em> » et le type MIME « application/octet-stream », il permet aux fichiers de type de fichier déblocé d’être téléchargés. (Toutefois, les types de fichiers bloqués tels que *.aspx et *.asmx ne peuvent pas être téléchargés.)

    Pour obtenir des instructions spécifiques sur la configuration des types MIME sur Windows Server, consultez Comment ajouter un type MIME à un site web ou une application.

Mappages de types de contenu

Lors de la publication sur HTTP, le type de contenu (également appelé type MIME) pour le fichier .application doit être « application/x-ms-application ». Si .NET Framework 2.0 est installé sur le serveur, cela sera défini automatiquement pour vous. Si ce n’est pas le cas, vous devez créer une association de type MIME pour l’application ClickOnce vroot (ou serveur entier).

Si vous déployez à l’aide d’un serveur IIS, exécutez inetmgr.exe et ajoutez un nouveau type de contenu « application/x-ms-application » pour l’extension .application .

Problèmes de compression HTTP

Avec ClickOnce, vous pouvez effectuer des téléchargements qui utilisent la compression HTTP, une technologie de serveur Web qui utilise l’algorithme GZIP pour compresser un flux de données avant d’envoyer le flux au client. Le client, dans ce cas, ClickOnce, décompose le flux avant de lire les fichiers.

Si vous utilisez IIS, vous pouvez facilement activer la compression HTTP. Toutefois, lorsque vous activez la compression HTTP, elle est activée uniquement pour certains types de fichiers, à savoir HTML et les fichiers texte. Pour activer la compression pour les assemblys (.dll), XML (.xml), les manifestes de déploiement (.application) et les manifestes d’application (.manifest), vous devez ajouter ces types de fichiers à la liste des types que IIS doit compresser. Tant que vous n’avez pas ajouté les types de fichiers à votre déploiement, seuls les fichiers texte et HTML seront compressés.

Pour obtenir des instructions détaillées sur IIS, consultez Comment spécifier des types de documents supplémentaires pour la compression HTTP.