Problèmes de configuration de serveur et de 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, comme un fichier Microsoft Word, IIS refuse de transmettre ce fichier et votre déploiement échoue.

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 lors du téléchargement des fichiers ClickOnce principaux tels que les manifestes et les assemblys, cette restriction peut vous empêcher de télécharger les fichiers de données inclus dans votre application ClickOnce. Dans ASP.NET, vous pouvez résoudre cette erreur en supprimant le handler 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 les fichiers avec des extensions telles que .dll, .config et .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 seulement configurer le serveur web pour débloquer les trois extensions de fichier suivantes :

  • .application

  • .manifest

  • .deploy

    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 sans avoir installé .NET Framework, ou si vous utilisez un autre serveur web (par exemple, Apache).

ClickOnce et SSL (Secure Sockets Layer)

Une application ClickOnce fonctionne correctement sur SSL, sauf quand Internet Explorer déclenche une invite sur 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 à jour et que les données de certificat correspondent aux données du site.

ClickOnce et authentification du proxy

ClickOnce prend en charge l’authentification de 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 du proxy requise ».

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

Compatibilité entre ClickOnce et le navigateur web

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

Notes

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 les applications ClickOnce par le biais de scripts de navigateur

Si vous avez développé une page web personnalisée qui lance une application ClickOnce à l’aide d’Active Scripting, vous constaterez peut-être que l’application ne se lance pas sur certains ordinateurs. Internet Explorer contient un paramètre appelé Invite automatique pour les téléchargements de fichiers, qui affecte ce comportement. Ce paramètre est disponible sous l’onglet Sécurité de son menu Options qui affecte ce comportement. Il se nomme Invite automatique pour les téléchargements de fichiers et il est répertorié sous la catégorie Téléchargements. La propriété est définie sur Activer par défaut pour les pages web intranet et sur Désactiver par défaut pour les pages web Internet. Lorsque ce paramètre est défini sur Désactiver, toute tentative d’activation d’une application ClickOnce programmatiquement (par exemple, en affectant son URL à la propriété document.location) est bloquée. Dans ce cas, les utilisateurs ne peuvent lancer des applications que par le biais d’un téléchargement initié par l’utilisateur, par exemple en cliquant sur un lien hypertexte défini sur l’URL de l’application.

Autres problèmes de configuration de serveur

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’autorisation. Si vous ne publiez pas à l’aide de HTTP, l’autorisation d’accès en écriture sur le chemin cible vous suffit.

Problèmes d’authentification de serveur

Lorsque vous publiez sur un serveur distant pour lequel 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."

Notes

Vous pouvez faire fonctionner l’authentification NTLM (stimulation-réponse NT) 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 fonctionne pas pour l’authentification de base.

Utiliser des serveurs web tiers

Si vous déployez une application ClickOnce à partir d’un serveur web autre qu’IIS, vous pouvez rencontrer un problème si le serveur retourne le type de contenu incorrect pour les fichiers ClickOnce clés, comme le manifeste de déploiement et le manifeste d’application. Pour résoudre ce problème, consultez la documentation d’aide de votre serveur web sur la façon d’ajouter de nouveaux types de contenu au serveur et assurez-vous 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. Vous pouvez toutefois modifier l’application ClickOnce pour l’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 (Manifest Generation and Editing Tool) et MageUI.exe (outil Manifest Generation and Editing, 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 ou serveur de fichiers HTTP 1.1. FTP, le protocole de transfert de fichiers, n’est pas pris en charge pour l’installation d’applications. Vous ne pouvez utiliser FTP que pour publier des applications. Le tableau suivant résume ces différences :

Type d’URL Description
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 qui exécute IIS. Vous ne pouvez toutefois pas accéder à ce serveur qui exécute 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 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 d’administration Gérer votre serveur 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 afin de permettre le téléchargement de fichiers de type .application, .manifest et tout autre type de fichier personnalisé utilisé par votre application.

Si vous effectuez un déploiement à 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 autorise le téléchargement des types de fichiers débloqué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, ce paramètre est automatiquement défini pour vous. Si ce n’est pas installé, vous devez créer une association de type MIME pour la racine virtuelle de l’application ClickOnce (ou le 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écompresse le flux avant de lire les fichiers.

Si vous utilisez IIS, vous pouvez facilement activer la compression HTTP. Toutefois, lorsque vous l’activez, la compression HTTP n’est disponible que pour certains types de fichiers, à savoir les fichiers HTML et texte. Pour activer la compression des assemblys (.dll), du format XML (.xml), des manifestes de déploiement (.application) et des manifestes d’application (.manifest), vous devez ajouter ces types de fichiers à la liste des types qu’IIS doit compresser. Tant que vous n’avez pas ajouté les types de fichiers à votre déploiement, seuls les fichiers texte et HTML sont 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.