Freigeben über


Probleme mit der Server- und Clientkonfiguration in ClickOnce-Bereitstellungen

Wenn Sie Internetinformationsdienste (IIS) auf Windows Server verwenden und Ihre Bereitstellung einen Dateityp enthält, den Windows nicht erkennt, z. B. eine Microsoft Word-Datei, lehnt IIS die Übertragung dieser Datei ab, und Ihre Bereitstellung ist nicht erfolgreich.

Darüber hinaus enthalten einige Webserver und Webanwendungssoftware, z. B. ASP.NET, eine Liste von Dateien und Dateitypen, die Sie nicht herunterladen können. Beispielsweise verhindert ASP.NET das Herunterladen aller Web.config Dateien. Diese Dateien können vertrauliche Informationen wie Benutzernamen und Kennwörter enthalten.

Diese Einschränkung sollte zwar keine Probleme beim Herunterladen von ClickOnce-Kerndateien wie Manifesten und Assemblys verursachen, diese Einschränkung kann jedoch verhindern, dass Sie Datendateien, die im Rahmen Ihrer ClickOnce-Anwendung enthalten sind, herunterladen. In ASP.NET können Sie diesen Fehler beheben, indem Sie den Handler entfernen, der das Herunterladen solcher Dateien aus dem IIS-Konfigurations-Manager verhindert. Weitere Informationen finden Sie in der IIS-Serverdokumentation.

Einige Webserver blockieren möglicherweise Dateien mit Erweiterungen wie .dll, .configund .mdf. Windows-basierte Anwendungen enthalten in der Regel Dateien mit einigen dieser Erweiterungen. Wenn ein Benutzer versucht, eine ClickOnce-Anwendung auszuführen, die auf eine blockierte Datei auf einem Webserver zugreift, resultiert dies in einem Fehler. Anstatt die Blockierung aller Dateierweiterungen aufzuheben, veröffentlicht ClickOnce standardmäßig jede Anwendungsdatei mit der Dateierweiterung ".deploy ". Daher muss der Administrator nur den Webserver so konfigurieren, dass die Blockierung der folgenden drei Dateierweiterungen aufgehoben wird:

  • .Anwendung

  • .manifest

  • .bereitstellen

    Sie können diese Option jedoch deaktivieren, indem Sie die Dateierweiterungsoption ".deploy" im Dialogfeld "Veröffentlichungsoptionen" deaktivieren. In diesem Fall müssen Sie den Webserver so konfigurieren, dass alle in der Anwendung verwendeten Dateierweiterungen aufgehoben werden.

Sie müssen z. B. manifest, .application und .deploy konfigurieren, wenn Sie IIS verwenden, auf dem Sie .NET Framework nicht installiert haben, oder wenn Sie einen anderen Webserver verwenden (z. B. Apache).

ClickOnce und Secure Sockets Layer (SSL)

Eine ClickOnce-Anwendung funktioniert einwandfrei über SSL, außer wenn der Browser eine Eingabeaufforderung zum SSL-Zertifikat auslöst. Die Eingabeaufforderung kann ausgelöst werden, wenn beim Zertifikat ein Fehler auftritt, z. B. wenn die Websitenamen nicht übereinstimmen oder das Zertifikat abgelaufen ist. Damit ClickOnce über eine SSL-Verbindung funktioniert, stellen Sie sicher, dass das Zertifikat up-to-datum ist und dass die Zertifikatdaten den Websitedaten entsprechen.

ClickOnce und Proxyauthentifizierung

ClickOnce bietet Unterstützung für die integrierte Windows-Proxyauthentifizierung ab .NET Framework 3.5. Es sind keine spezifischen machine.config Richtlinien erforderlich. ClickOnce bietet keine Unterstützung für andere Authentifizierungsprotokolle wie Basic oder Digest.

Sie können auch einen Hotfix auf .NET Framework 2.0 anwenden, um dieses Feature zu aktivieren. Weitere Informationen finden Sie unter FIX: Fehlermeldung, wenn Sie versuchen, eine ClickOnce-Anwendung zu installieren, die Sie in .NET Framework 2.0 auf einem Clientcomputer erstellt haben, der für die Verwendung eines Proxyservers konfiguriert ist: "Proxyauthentifizierung erforderlich".

Weitere Informationen finden Sie unter <defaultProxy-Element> (Netzwerkeinstellungen).

ClickOnce- und Webbrowserkompatibilität

Derzeit werden ClickOnce-Installationen nur gestartet, wenn die URL zum Bereitstellungsmanifest mit dem Browser geöffnet wird. Eine Bereitstellung, deren URL von einer anderen Anwendung wie Microsoft Office Outlook gestartet wird, wird nur erfolgreich gestartet, wenn Internet Explorer als Standardwebbrowser festgelegt ist.

Hinweis

Mozilla Firefox wird unterstützt, wenn der Bereitstellungsanbieter nicht leer ist oder die Erweiterung des Microsoft .NET Framework-Assistenten installiert ist. Diese Erweiterung ist gepackt mit .NET Framework 3.5 SP1. Für die XBAP-Unterstützung wird das NPWPF-Plug-In bei Bedarf aktiviert.

Aktivieren von ClickOnce-Anwendungen durch Browserskripting

Wenn Sie eine benutzerdefinierte Webseite entwickelt haben, die eine ClickOnce-Anwendung mit Active Scripting startet, stellen Sie möglicherweise fest, dass die Anwendung auf einigen Computern nicht gestartet wird. Der Browser enthält eine Einstellung wie die automatische Aufforderung zum Herunterladen von Dateien, die sich auf dieses Verhalten auswirken. Diese Browsereinstellung wird in der Regel unter der Kategorie "Downloads " aufgeführt und ist standardmäßig aktiviert. Wenn diese Einstellung deaktiviert ist, wird jeder Versuch, eine ClickOnce-Anwendung programmgesteuert zu aktivieren (z. B. durch Zuweisen der URL zur document.location Eigenschaft), blockiert. Unter diesem Fall können Benutzer Anwendungen nur über einen vom Benutzer initiierten Download starten, z. B. durch Klicken auf einen Link, der auf die URL der Anwendung festgelegt ist.

Weitere Serverkonfigurationsprobleme

Administratorberechtigungen erforderlich

Sie müssen über Administratorberechtigungen auf dem Zielserver verfügen, wenn Sie mit HTTP veröffentlichen. IIS erfordert diese Berechtigungsstufe. Wenn Sie keine Veröffentlichung mit HTTP ausführen, benötigen Sie nur Schreibberechtigungen für den Zielpfad.

Serverauthentifizierungsprobleme

Wenn Sie auf einem Remoteserver veröffentlichen, auf dem "Anonymer Zugriff" deaktiviert ist, erhalten Sie die folgende Warnung:

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

Hinweis

Sie können die NTLM-Authentifizierung (NT-Abfrageantwort) aktivieren, wenn die Website andere Anmeldeinformationen als Ihre Standardanmeldeinformationen einfordert, und klicken Sie im Sicherheitsdialogfeld auf "OK ", wenn Sie aufgefordert werden, die angegebenen Anmeldeinformationen für zukünftige Sitzungen zu speichern. Diese Problemumgehung funktioniert jedoch nicht für die Standardauthentifizierung.

Verwenden von Webservern von Drittanbietern

Wenn Sie eine ClickOnce-Anwendung von einem anderen Webserver als IIS bereitstellen, tritt möglicherweise ein Problem auf, wenn der Server den falschen Inhaltstyp für wichtige ClickOnce-Dateien wie das Bereitstellungsmanifest und das Anwendungsmanifest zurückgibt. Informationen zum Beheben dieses Problems finden Sie in der Hilfedokumentation Ihres Webservers zum Hinzufügen neuer Inhaltstypen zum Server, und stellen Sie sicher, dass alle in der folgenden Tabelle aufgeführten Zuordnungen der Dateinamenerweiterungen vorhanden sind.

Dateinamenerweiterung Inhaltstyp
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce und zugeordnete Laufwerke

Wenn Sie Visual Studio zum Veröffentlichen einer ClickOnce-Anwendung verwenden, können Sie kein zugeordnetes Laufwerk als Installationsspeicherort angeben. Sie können die ClickOnce-Anwendung jedoch ändern, um sie über ein zugeordnetes Laufwerk zu installieren, indem Sie den Manifest-Generator und -Editor (Mage.exe und MageUI.exe) verwenden. Weitere Informationen finden Sie unter Mage.exe (Manifestgenerierungs- und Bearbeitungstool) und MageUI.exe (Manifestgenerierungs- und Bearbeitungstool, grafischer Client).

FTP-Protokoll für die Installation von Anwendungen nicht unterstützt

ClickOnce unterstützt die Installation von Anwendungen von einem beliebigen HTTP 1.1-Webserver oder Dateiserver. FTP, das Dateiübertragungsprotokoll, wird für die Installation von Anwendungen nicht unterstützt. Sie können FTP verwenden, um nur Anwendungen zu veröffentlichen. In der folgenden Tabelle sind die folgenden Unterschiede zusammengefasst:

URL-Typ Description
ftp:// Sie können eine ClickOnce-Anwendung mithilfe dieses Protokolls veröffentlichen.
http:// Sie können eine ClickOnce-Anwendung mithilfe dieses Protokolls installieren.
https:// Sie können eine ClickOnce-Anwendung mithilfe dieses Protokolls installieren.
Datei:// Sie können eine ClickOnce-Anwendung mithilfe dieses Protokolls installieren.

Windows-Firewall

Standardmäßig aktiviert Windows die Windows-Firewall. Wenn Sie Ihre Anwendung auf einem Computer entwickeln, auf dem Windows installiert ist, können Sie ClickOnce-Anwendungen weiterhin auf dem lokalen Server veröffentlichen und ausführen, auf dem IIS ausgeführt wird. Sie können jedoch nicht von einem anderen Computer aus auf diesen Server zugreifen, auf den IIS ausgeführt wird, es sei denn, Sie öffnen die Windows-Firewall. Anweisungen zum Verwalten der Windows-Firewall finden Sie in der Windows-Hilfe.

Windows Server: Aktivieren von FrontPage-Servererweiterungen

FrontPage-Servererweiterungen von Microsoft sind für die Veröffentlichung von Anwendungen auf einem Windows-Webserver erforderlich, der HTTP verwendet.

Standardmäßig sind auf Windows Server die FrontPage-Servererweiterungen nicht installiert. Wenn Sie Visual Studio zum Veröffentlichen auf einem Windows Server-Webserver verwenden möchten, der HTTP mit FrontPage-Servererweiterungen verwendet, müssen Sie zuerst FrontPage-Servererweiterungen installieren. Sie können die Installation mithilfe des Verwaltungstools "Server verwalten" in Windows Server ausführen.

Windows Server: Gesperrte Inhaltstypen

IIS unter Windows Server 2003 sperrt alle Dateitypen außer bestimmten bekannten Inhaltstypen (z. B. .htm, .html, .txtusw.). Um die Bereitstellung von ClickOnce-Anwendungen mit diesem Server zu aktivieren, müssen Sie die IIS-Einstellungen ändern, um das Herunterladen von Dateien vom Typ ".application", ".manifest" und andere benutzerdefinierte Dateitypen zuzulassen, die von Ihrer Anwendung verwendet werden.

Wenn Sie einen IIS-Server bereitstellen, führen Sie inetmgr.exe aus, und fügen Sie neue Dateitypen für die Standardwebseite hinzu:

  • Für die .application - und .manifest-Erweiterungen sollte der MIME-Typ "application/x-ms-application" sein. Bei anderen Dateitypen sollte der MIME-Typ "application/octet-stream" sein.

  • Wenn Sie einen MIME-Typ mit der Erweiterung "<em>" und dem MIME-Typ "application/octet-stream" erstellen, können Dateien des nicht blockierten Dateityps heruntergeladen werden. (Blockierte Dateitypen wie *.aspx und *.asmx können jedoch nicht heruntergeladen werden.)

    Spezifische Anweisungen zum Konfigurieren von MIME-Typen unter Windows Server finden Sie unter Hinzufügen eines MIME-Typs zu einer Website oder Anwendung.

Inhaltstypzuordnungen

Bei der Veröffentlichung über HTTP sollte der Inhaltstyp (auch ALS MIME-Typ bezeichnet) für die ANWENDUNGSdatei "application/x-ms-application" sein. Wenn .NET Framework 2.0 auf dem Server installiert ist, wird dies automatisch für Sie festgelegt. Wenn dies nicht installiert ist, müssen Sie eine MIME-Typzuordnung für die ClickOnce-Anwendung vroot (oder den gesamten Server) erstellen.

Wenn Sie eine Bereitstellung mit einem IIS-Server durchführen, führen Sie inetmgr.exe aus und fügen Sie einen neuen Inhaltstyp "application/x-ms-application" für die .application-Erweiterung hinzu.

HTTP-Komprimierungsprobleme

Mit ClickOnce können Sie Downloads ausführen, die HTTP-Komprimierung verwenden, eine Webservertechnologie, die den GZIP-Algorithmus zum Komprimieren eines Datenstroms verwendet, bevor Sie den Datenstrom an den Client senden. Der Client – in diesem Fall ClickOnce – dekomprimiert den Datenstrom vor dem Lesen der Dateien.

Wenn Sie IIS verwenden, können Sie die HTTP-Komprimierung ganz einfach aktivieren. Wenn Sie jedoch die HTTP-Komprimierung aktivieren, ist sie nur für bestimmte Dateitypen aktiviert, nämlich HTML und Textdateien. Zum Aktivieren der Komprimierung für Assemblys (.dll), XML (.xml), Bereitstellungsmanifesten (.application) und Anwendungsmanifesten (.manifest) müssen Sie diese Dateitypen der Liste der Typen hinzufügen, die IIS komprimieren soll. Bis Sie die Dateitypen zu Ihrer Bereitstellung hinzufügen, werden nur Text- und HTML-Dateien komprimiert.

Ausführliche Anweisungen für IIS finden Sie unter Angeben zusätzlicher Dokumenttypen für die HTTP-Komprimierung.