Delen via


Problemen met server- en clientconfiguratie in ClickOnce-implementaties

Als u Internet Information Services (IIS) op Windows Server gebruikt en uw implementatie een bestandstype bevat dat niet wordt herkend door Windows, zoals een Microsoft Word-bestand, weigert IIS dat bestand te verzenden en slaagt uw implementatie niet.

Daarnaast bevatten sommige webservers en webtoepassingssoftware, zoals ASP.NET, een lijst met bestanden en bestandstypen die u niet kunt downloaden. Zo voorkomt ASP.NET het downloaden van alle Web.config bestanden. Deze bestanden kunnen gevoelige informatie bevatten, zoals gebruikersnamen en wachtwoorden.

Hoewel deze beperking geen problemen moet veroorzaken voor het downloaden van kern-ClickOnce-bestanden, zoals manifesten en assembly's, kan deze beperking verhinderen dat u gegevensbestanden downloadt die zijn opgenomen als onderdeel van uw ClickOnce-toepassing. In ASP.NET kunt u deze fout oplossen door de handler te verwijderen die het downloaden van dergelijke bestanden van IIS Configuration Manager verbiedt. Raadpleeg de IIS-serverdocumentatie voor meer informatie.

Sommige webservers kunnen bestanden met extensies zoals .dll, .configen .mdf blokkeren. Windows-toepassingen bevatten doorgaans bestanden met een aantal van deze extensies. Als een gebruiker een ClickOnce-toepassing probeert uit te voeren die toegang heeft tot een geblokkeerd bestand op een webserver, treedt er een fout op. In plaats van alle bestandsextensies te deblokkeren, publiceert ClickOnce standaard elk toepassingsbestand met de extensie .deploy . Daarom hoeft de beheerder alleen de webserver te configureren om de blokkering van de volgende drie bestandsextensies op te heffen:

  • .application

  • .manifest

  • .Implementeren

    U kunt deze optie echter uitschakelen door de optie '.deploy' bestandsextensie gebruiken uit te schakelen in het dialoogvenster Publicatieopties. In dat geval moet u de webserver configureren om alle bestandsextensies die in de toepassing worden gebruikt, te deblokkeren.

U moet .manifest, .application en .deploy configureren, bijvoorbeeld als u IIS gebruikt waarvoor u .NET Framework niet hebt geïnstalleerd of als u een andere webserver (bijvoorbeeld Apache) gebruikt.

ClickOnce and Secure Sockets Layer (SSL)

Een ClickOnce-toepassing werkt prima via SSL, behalve wanneer de browser een prompt over het SSL-certificaat genereert. De prompt kan worden gegenereerd wanneer er iets mis is met het certificaat, bijvoorbeeld wanneer de sitenamen niet overeenkomen of het certificaat is verlopen. Als u ClickOnce via een SSL-verbinding wilt laten werken, moet u ervoor zorgen dat het certificaat up-to-date is en dat de certificaatgegevens overeenkomen met de sitegegevens.

ClickOnce en proxy-authenticatie

ClickOnce biedt ondersteuning voor geïntegreerde Windows-proxyverificatie vanaf .NET Framework 3.5. Er zijn geen specifieke machine.config richtlijnen vereist. ClickOnce biedt geen ondersteuning voor andere verificatieprotocollen, zoals Basic of Digest.

U kunt ook een hotfix toepassen op .NET Framework 2.0 om deze functie in te schakelen. Zie FIX: Foutbericht wanneer u een ClickOnce-toepassing probeert te installeren die u in .NET Framework 2.0 hebt gemaakt op een clientcomputer die is geconfigureerd voor het gebruik van een proxyserver: 'Proxyverificatie vereist'.

Zie <het defaultProxy-element> (netwerkinstellingen) voor meer informatie.

Compatibiliteit met ClickOnce en webbrowser

Op dit moment worden ClickOnce-installaties alleen gestart als de URL naar het implementatiemanifest wordt geopend met behulp van de browser. Een implementatie waarvan de URL wordt gestart vanuit een andere toepassing, zoals Microsoft Office Outlook, wordt alleen gestart als Internet Explorer is ingesteld als de standaardwebbrowser.

Opmerking

Mozilla Firefox wordt ondersteund als de implementatieprovider niet leeg is of als de extensie Microsoft .NET Framework Assistant is geïnstalleerd. Deze extensie is verpakt met .NET Framework 3.5 SP1. Voor XBAP-ondersteuning wordt de NPWPF-invoegtoepassing geactiveerd wanneer dat nodig is.

ClickOnce-toepassingen activeren via browserscripting

Als u een aangepaste webpagina hebt ontwikkeld waarmee een ClickOnce-toepassing wordt gestart met behulp van Active Scripting, is het mogelijk dat de toepassing niet op sommige computers wordt gestart. De browser bevat een instelling zoals Automatisch vragen om bestandsdownloads, wat van invloed is op dit gedrag. Deze browserinstelling wordt meestal vermeld onder de categorie Downloads en is standaard ingeschakeld. Wanneer deze instelling is uitgeschakeld, wordt elke poging om een ClickOnce-toepassing programmatisch te activeren (bijvoorbeeld door de URL ervan toe te wijzen aan de document.location eigenschap) geblokkeerd. In dit geval kunnen gebruikers toepassingen alleen starten via een door de gebruiker geïnitieerde download, bijvoorbeeld door te klikken op een hyperlink die is ingesteld op de URL van de toepassing.

Aanvullende problemen met serverconfiguratie

Beheerdersmachtigingen vereist

U moet beheerdersmachtigingen hebben op de doelserver als u publiceert met HTTP. VOOR IIS is dit machtigingsniveau vereist. Als u niet publiceert via HTTP, hebt u alleen schrijfmachtigingen voor het doelpad nodig.

Problemen met serververificatie

Wanneer u publiceert op een externe server waarvoor Anonieme toegang is uitgeschakeld, ontvangt u de volgende waarschuwing:

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

Opmerking

U kunt NTLM-verificatie (NT challenge-response) laten werken als de site om andere referenties dan uw standaardreferenties vraagt. Klik in het beveiligingsdialoogvenster op OK wanneer u wordt gevraagd of u de opgegeven referenties voor toekomstige sessies wilt opslaan. Deze tijdelijke oplossing werkt echter niet voor basisverificatie.

Webservers van derden gebruiken

Als u een ClickOnce-toepassing implementeert vanaf een andere webserver dan IIS, kan er een probleem optreden als de server het onjuiste inhoudstype retourneert voor belangrijke ClickOnce-bestanden, zoals het distributiemanifest en het toepassingsmanifest. Als u dit probleem wilt oplossen, raadpleegt u de Help-documentatie van uw webserver over het toevoegen van nieuwe inhoudstypen aan de server en zorgt u ervoor dat alle bestandsextensies die in de volgende tabel worden vermeld, aanwezig zijn.

Bestandsnaamextensie Inhoudstype
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce en toegewezen netwerklocaties

Als u Visual Studio gebruikt om een ClickOnce-toepassing te publiceren, kunt u geen netwerkstation opgeven als de installatielocatie. U kunt echter de ClickOnce-toepassing wijzigen om te installeren vanaf een toegewezen schijf met behulp van de Manifest Generator en Editor (Mage.exe en MageUI.exe). Zie Mage.exe (Hulpprogramma voor het genereren en bewerken van manifesten) en MageUI.exe (hulpprogramma voor het genereren en bewerken van manifesten, grafische client) voor meer informatie.

FTP-protocol wordt niet ondersteund voor het installeren van toepassingen

ClickOnce ondersteunt het installeren van toepassingen vanaf elke HTTP 1.1-webserver of bestandsserver. FTP, het File Transfer Protocol, wordt niet ondersteund voor het installeren van toepassingen. U kunt FTP alleen gebruiken om toepassingen te publiceren. De volgende tabel bevat een overzicht van deze verschillen:

URL-type Description
Ftp:// U kunt een ClickOnce-toepassing publiceren met behulp van dit protocol.
http:// U kunt een ClickOnce-toepassing installeren met behulp van dit protocol.
https:// U kunt een ClickOnce-toepassing installeren met behulp van dit protocol.
bestand:// U kunt een ClickOnce-toepassing installeren met behulp van dit protocol.

Windows Firewall

Windows schakelt standaard Windows Firewall in. Als u uw toepassing ontwikkelt op een computer waarop Windows is geïnstalleerd, kunt u ClickOnce-toepassingen nog steeds publiceren en uitvoeren vanaf de lokale server waarop IIS wordt uitgevoerd. U hebt echter geen toegang tot die server waarop IIS vanaf een andere computer wordt uitgevoerd, tenzij u de Windows Firewall opent. Zie De Help van Windows voor instructies over het beheren van Windows Firewall.

Windows Server: FrontPage-serverextensies inschakelen

FrontPage Server Extensions van Microsoft is vereist voor het publiceren van toepassingen naar een Windows-webserver die gebruikmaakt van HTTP.

Voor Windows Server zijn standaard geen FrontPage-serverextensies geïnstalleerd. Als u Visual Studio wilt gebruiken om te publiceren naar een Windows Server-webserver die GEBRUIKMAAKT van HTTP met FrontPage Server Extensions, moet u eerst FrontPage Server Extensions installeren. U kunt de installatie uitvoeren met behulp van het beheerprogramma Uw server beheren in Windows Server.

Windows Server: vergrendelde inhoudstypen

IIS op Windows Server 2003 vergrendelt alle bestandstypen, met uitzondering van bepaalde bekende inhoudstypen (bijvoorbeeld .htm, .html, .txtenzovoort). Als u de implementatie van ClickOnce-toepassingen met deze server wilt inschakelen, moet u de IIS-instellingen wijzigen om het downloaden van bestanden van het type .application, .manifest en andere aangepaste bestandstypen toe te staan die door uw toepassing worden gebruikt.

Als u implementeert met een IIS-server, voert u inetmgr.exe uit en voegt u nieuwe bestandstypen toe voor de standaardwebpagina:

  • Voor de extensies .application en .manifest moet het MIME-type 'application/x-ms-application' zijn. Voor andere bestandstypen moet het MIME-type 'application/octet-stream' zijn.

  • Als u een MIME-type maakt met de extensie <em> en het MIME-type 'application/octet-stream', kunnen bestanden van een niet-geblokkeerd bestandstype worden gedownload. (Geblokkeerde bestandstypen zoals *.aspx en *.asmx kunnen echter niet worden gedownload.)

    Zie Een MIME-type toevoegen aan een website of toepassing voor specifieke instructies voor het configureren van MIME-typen op Windows Server.

Inhoudstype koppelingen

Bij het publiceren via HTTP moet het inhoudstype (ook wel MIME-type genoemd) voor het .application-bestand 'application/x-ms-application' zijn. Als u .NET Framework 2.0 op de server hebt geïnstalleerd, wordt dit automatisch voor u ingesteld. Als dit niet is geïnstalleerd, moet u een MIME-typekoppeling maken voor de vroot van de ClickOnce-toepassing (of de hele server).

Als u implementeert met behulp van een IIS-server, voert u inetmgr uit.exe en voeg een nieuw inhoudstype 'application/x-ms-application' toe voor de extensie .application .

Problemen met HTTP-compressie

Met ClickOnce kunt u downloads uitvoeren die HTTP-compressie gebruiken, een webservertechnologie die gebruikmaakt van het GZIP-algoritme om een gegevensstroom te comprimeren voordat de stream naar de client wordt verzonden. De client, in dit geval ClickOnce, decomprimeert de stroom voordat de bestanden worden gelezen.

Als u IIS gebruikt, kunt u eenvoudig HTTP-compressie inschakelen. Wanneer u ECHTER HTTP-compressie inschakelt, is deze alleen ingeschakeld voor bepaalde bestandstypen, namelijk HTML- en tekstbestanden. Als u compressie wilt inschakelen voor assembly's (.dll), XML (.xml), implementatiemanifesten (.application) en toepassingsmanifesten (.manifest), moet u deze bestandstypen toevoegen aan de lijst met typen die door IIS moeten worden gecomprimeerd. Totdat u de bestandstypen aan uw implementatie toevoegt, worden alleen tekst- en HTML-bestanden gecomprimeerd.

Voor gedetailleerde instructies voor IIS, zie Hoe aanvullende documenttypen op te geven voor HTTP-compressie.