Probleme mit der Server- und Clientkonfiguration in ClickOnce-Bereitstellungen

Wenn Sie Internetinformationsdienste (IIS) unter 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 den Download aller Web.config -Dateien. Diese Dateien können vertrauliche Informationen wie Benutzernamen und Kennwörter enthalten.

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

Einige Webserver blockieren möglicherweise Dateien mit Erweiterungen wie .dll, .config und .mdf. Windows-basierte Anwendungen enthalten in der Regel Dateien mit einigen dieser Erweiterungen. Wenn Benutzer*innen versuchen, eine ClickOnce-Anwendung auszuführen, die auf eine blockierte Datei auf einem Webserver zugreift, tritt ein Fehler auf. 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:

  • .application

  • .manifest

  • .deploy

    Sie können diese Option jedoch deaktivieren, indem Sie die Option Dateierweiterung „.deploy“ verwenden im Dialogfeld Veröffentlichungsoptionen deaktivieren. In diesem Fall müssen Sie den Webserver so konfigurieren, dass die Blockierung aller in der Anwendung verwendeten Dateierweiterungen aufgehoben wird.

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

ClickOnce und Secure Sockets Layer (SSL)

Eine ClickOnce-Anwendung funktioniert problemlos über SSL, außer wenn Internet Explorer eine Eingabeaufforderung zum SSL-Zertifikat auslöst. Die Eingabeaufforderung kann ausgelöst werden, wenn ein Fehler mit dem Zertifikat vorliegt, 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 auf dem neuesten Stand 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-Anweisungen 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 bei dem Versuch, eine in .NET Framework 2.0 erstellte ClickOnce-Anwendung auf einem Clientcomputer zu installieren, der für die Verwendung eines Proxyservers konfiguriert ist: „Proxyauthentifizierung erforderlich“.

For more information, see <defaultProxy>-Element (Netzwerkeinstellungen).

Kompatibilität von ClickOnce und Webbrowsern

Derzeit werden ClickOnce-Installationen nur gestartet, wenn die URL zum Bereitstellungsmanifest mithilfe von Internet Explorer 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 Microsoft .NET Framework Assistant-Erweiterung installiert ist. Diese Erweiterung ist mit .NET Framework 3.5 SP1 gepackt. Für die XBAP-Unterstützung wird das NPWPF-Plug-In bei Bedarf aktiviert.

Aktivieren von ClickOnce-Anwendungen über Browserskripts

Wenn Sie eine benutzerdefinierte Webseite entwickelt haben, die eine ClickOnce-Anwendung mithilfe von Active Scripting startet, stellen Sie möglicherweise fest, dass die Anwendung auf einigen Computern nicht gestartet wird. Internet Explorer enthält eine Einstellung namens Automatische Eingabeaufforderung für Dateidownloads, die sich auf dieses Verhalten auswirkt. Diese Einstellung ist auf der Registerkarte Sicherheit im Menü Optionen verfügbar, das sich auf dieses Verhalten auswirkt. Sie heißt Automatische Eingabeaufforderung für Dateidownloads und ist unter der Kategorie Downloads aufgeführt. Die Eigenschaft ist für Intranetwebseiten standardmäßig auf Aktivieren und für Internetwebseiten standardmäßig auf Deaktivieren festgelegt. Wenn diese Einstellung auf Deaktivieren festgelegt ist, wird jeder Versuch blockiert, eine ClickOnce-Anwendung programmgesteuert zu aktivieren (z. B. durch Zuweisen ihrer URL zur document.location-Eigenschaft). Unter diesen Umständen können Benutzer*innen Anwendungen nur über einen von ihnen initiierten Download starten, z. B. indem sie auf einen Link klicken, der auf die URL der Anwendung festgelegt ist.

Zusätzliche Serverkonfigurationsprobleme

Administratorberechtigungen erforderlich

Wenn Sie mit HTTP veröffentlichen, müssen Sie über Administratorberechtigungen auf dem Zielserver verfügen. IIS erfordert diese Berechtigungsebene. Wenn Sie nicht über HTTP veröffentlichen, benötigen Sie nur die Schreibberechtigung 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 challenge-response) sicherstellen, wenn die Website andere Anmeldeinformationen als Ihre Standardanmeldeinformationen einfordert. 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. Lesen Sie für die Behebung dieses Problems die Hilfedokumentation Ihres Webservers zum Hinzufügen neuer Inhaltstypen zum Server, und stellen Sie sicher, dass alle in der folgenden Tabelle aufgeführten Zuordnungen für 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 so ändern, dass sie von einem zugeordneten Laufwerk aus installiert wird, indem Sie den Manifest-Generator und -Editor (Mage.exe und MageUI.exe) verwenden. Weitere Informationen finden Sie unter Mage.exe (Tool zum Generieren und Bearbeiten von Manifesten) und MageUI.exe (Tool zum Generieren und Bearbeiten von Manifesten, grafischer Client).

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

ClickOnce unterstützt die Installation von Anwendungen von jedem HTTP 1.1-Webserver oder -Dateiserver. FTP, das File Transfer Protocol, wird für die Installation von Anwendungen nicht unterstützt. Sie können FTP nur zum Veröffentlichen von Anwendungen verwenden. In der folgenden Tabelle sind die Unterschiede zusammengefasst:

URL-Typ Beschreibung
ftp:// Sie können eine ClickOnce-Anwendung mit diesem Protokoll veröffentlichen.
http:// Sie können eine ClickOnce-Anwendung mit diesem Protokoll installieren.
https:// Sie können eine ClickOnce-Anwendung mit diesem Protokoll installieren.
file:// Sie können eine ClickOnce-Anwendung mit diesem Protokoll 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 weiterhin ClickOnce-Anwendungen 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 den Server zugreifen, auf dem 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 erforderlich, um Anwendungen auf einem Windows-Webserver zu veröffentlichen, der HTTP verwendet.

Standardmäßig sind unter Windows Server keine FrontPage-Servererweiterungen installiert. Wenn Sie Visual Studio verwenden möchten, um auf einem Windows Server-Webserver zu veröffentlichen, der HTTP mit FrontPage-Servererweiterungen verwendet, müssen Sie zuerst FrontPage-Servererweiterungen installieren. Sie können die Installation mit dem Verwaltungstool „Serververwaltung“ in Windows Server durchführen.

Windows Server: Gesperrte Inhaltstypen

IIS unter Windows Server 2003 sperrt alle Dateitypen mit Ausnahme bestimmter bekannter Inhaltstypen (z. B. .htm, .html, .txt usw.). Zur Aktivierung der Bereitstellung von ClickOnce-Anwendungen mithilfe dieses Servers müssen Sie die IIS-Einstellungen so ändern, dass Dateien vom Typ .application, .manifest und alle anderen benutzerdefinierten Dateitypen heruntergeladen werden können, die von Ihrer Anwendung verwendet werden.

Wenn Sie die Bereitstellung mithilfe eines IIS-Servers durchführen, führen Sie inetmgr.exe aus, und fügen Sie neue Dateitypen für die Standardwebseite hinzu:

  • Für die Erweiterungen .application und .manifest 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 mit nicht blockiertem Dateityp 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 So fügen Sie einer Website oder Anwendung einen MIME-Typ hinzu.

Inhaltstypzuordnungen

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

Wenn Sie die Bereitstellung mithilfe eines IIS-Servers durchführen, führen Sie inetmgr. exe aus, und fügen Sie einen neuen Inhaltstyp „application/x-ms-application“ für die Erweiterung .application hinzu.

HTTP-Komprimierungsprobleme

Mit ClickOnce können Sie Downloads durchführen, die die HTTP-Komprimierung verwenden. Diese Webservertechnologie verwendet den GZIP-Algorithmus, um einen Datenstrom zu komprimieren, bevor sie den Stream an den Client sendet. Der Client – in diesem Fall ClickOnce – dekomprimiert den Stream vor dem Lesen der Dateien.

Wenn Sie IIS verwenden, können Sie die HTTP-Komprimierung problemlos aktivieren. Wenn Sie die HTTP-Komprimierung aktivieren, ist sie jedoch nur für bestimmte Dateitypen aktiviert, nämlich für HTML- und Textdateien. Zur Aktivierung der Komprimierung für Assemblys (.dll), XML (.xml), Bereitstellungsmanifeste (.application) und Anwendungsmanifeste (.manifest) müssen Sie diese Dateitypen zur Liste der Typen hinzufügen, die IIS komprimieren soll. Bis Sie der Bereitstellung die Dateitypen hinzufügen, werden nur Text- und HTML-Dateien komprimiert.

Ausführliche Anweisungen für IIS finden Sie unter Inhaltstypen für die HTTP-Komprimierung in Internetinformationsdiensten.