Problemy konfiguracji serwera i klienta we wdrożeniach technologii ClickOnce

Jeśli używasz usług Internet Information Services (IIS) w systemie Windows Server, a wdrożenie zawiera typ pliku, którego system Windows nie rozpoznaje, na przykład pliku programu Microsoft Word, usługi IIS odmówią przesłania tego pliku, a wdrożenie nie powiedzie się.

Ponadto niektóre serwery sieci Web i oprogramowanie aplikacji internetowej, takie jak ASP.NET, zawierają listę plików i typów plików, których nie można pobrać. Na przykład ASP.NET uniemożliwia pobieranie wszystkich plików Web.config . Te pliki mogą zawierać poufne informacje, takie jak nazwy użytkowników i hasła.

Mimo że to ograniczenie nie powinno powodować problemów z pobieraniem podstawowych plików ClickOnce, takich jak manifesty i zestawy, to ograniczenie może uniemożliwić pobieranie plików danych zawartych w ramach aplikacji ClickOnce. W ASP.NET można rozwiązać ten błąd, usuwając procedurę obsługi, która uniemożliwia pobieranie takich plików z menedżera konfiguracji usług IIS. Aby uzyskać więcej informacji, zobacz dokumentację serwera IIS.

Niektóre serwery sieci Web mogą blokować pliki z rozszerzeniami, takimi jak .dll, .config i .mdf. Aplikacje oparte na systemie Windows zwykle zawierają pliki z niektórymi z tych rozszerzeń. Jeśli użytkownik spróbuje uruchomić aplikację ClickOnce, która uzyskuje dostęp do zablokowanego pliku na serwerze sieci Web, zostanie wyświetlony błąd. Zamiast odblokowywać wszystkie rozszerzenia plików, technologia ClickOnce domyślnie publikuje każdy plik aplikacji z rozszerzeniem .deploy . W związku z tym administrator musi skonfigurować serwer sieci Web tylko w celu odblokowania następujących trzech rozszerzeń plików:

  • .Aplikacji

  • .Manifestu

  • .Wdrożyć

    Można jednak wyłączyć tę opcję, usuwając zaznaczenie opcji Rozszerzenia pliku Użyj ".deploy" w oknie dialogowym Opcje publikowania. W takim przypadku należy skonfigurować serwer sieci Web w celu odblokowania wszystkich rozszerzeń plików używanych w aplikacji.

    Konieczne będzie skonfigurowanie na przykład manifestu, aplikacji i wdrożenia, jeśli używasz usług IIS, w których nie zainstalowano programu .NET Framework, lub jeśli używasz innego serwera sieci Web (na przykład Apache).

ClickOnce i Secure Sockets Layer (SSL)

Aplikacja ClickOnce działa prawidłowo za pośrednictwem protokołu SSL, z wyjątkiem sytuacji, gdy program Internet Explorer zgłasza monit o certyfikat SSL. Monit można zgłaszać, gdy występuje problem z certyfikatem, na przykład gdy nazwy witryn nie są zgodne lub certyfikat wygasł. Aby nawiązać pracę technologii ClickOnce za pośrednictwem połączenia SSL, upewnij się, że certyfikat jest aktualny i czy dane certyfikatu są zgodne z danymi lokacji.

ClickOnce i uwierzytelnianie serwera proxy

Technologia ClickOnce zapewnia obsługę zintegrowanego uwierzytelniania serwera proxy systemu Windows, począwszy od programu .NET Framework 3.5. Nie są wymagane żadne określone dyrektywy machine.config. Technologia ClickOnce nie zapewnia obsługi innych protokołów uwierzytelniania, takich jak Basic lub Digest.

Możesz również zastosować poprawkę do programu .NET Framework 2.0, aby włączyć tę funkcję. Aby uzyskać więcej informacji, zobacz FIX: Komunikat o błędzie podczas próby zainstalowania aplikacji ClickOnce utworzonej w programie .NET Framework 2.0 na komputerze klienckim skonfigurowanym do korzystania z serwera proxy: "Wymagane uwierzytelnianie serwera proxy".

Aby uzyskać więcej informacji, zobacz <defaultProxy> , element (ustawienia sieciowe).

Zgodność technologii ClickOnce i przeglądarki internetowej

Obecnie instalacje Technologii ClickOnce będą uruchamiane tylko wtedy, gdy adres URL manifestu wdrożenia zostanie otwarty przy użyciu programu Internet Explorer. Wdrożenie, którego adres URL jest uruchamiany z innej aplikacji, takiej jak Microsoft Office Outlook, zostanie uruchomiony pomyślnie tylko wtedy, gdy program Internet Explorer jest ustawiony jako domyślna przeglądarka sieci Web.

Uwaga

Mozilla Firefox jest obsługiwana, jeśli dostawca wdrożenia nie jest pusty lub zainstalowano rozszerzenie Asystenta programu Microsoft .NET Framework. To rozszerzenie jest spakowane przy użyciu programu .NET Framework 3.5 z dodatkiem SP1. W przypadku obsługi protokołu XBAP wtyczka NPWPF jest aktywowana w razie potrzeby.

Aktywowanie aplikacji ClickOnce za pomocą skryptów przeglądarki

Jeśli utworzono niestandardową stronę sieci Web, która uruchamia aplikację ClickOnce przy użyciu aktywnego skryptu, może się okazać, że aplikacja nie zostanie uruchomiona na niektórych maszynach. Program Internet Explorer zawiera ustawienie o nazwie Automatyczne monitowanie o pobieranie plików, co wpływa na to zachowanie. To ustawienie jest dostępne na karcie Zabezpieczenia w menu Opcje , które wpływa na to zachowanie. Jest on nazywany automatycznym monitowaniem o pobieranie plików i znajduje się pod kategorią Pobrane . Właściwość jest ustawiona na wartość Włącz domyślnie dla intranetowych stron sieci Web i domyślnie wartość Wyłącz dla internetowych stron sieci Web. Jeśli to ustawienie ma wartość Wyłącz, każda próba programowego aktywowania aplikacji ClickOnce (na przykład przez przypisanie adresu URL do document.location właściwości) zostanie zablokowana. W takich okolicznościach użytkownicy mogą uruchamiać aplikacje tylko za pośrednictwem pobierania zainicjowanego przez użytkownika, klikając hiperlink ustawiony na adres URL aplikacji.

Dodatkowe problemy z konfiguracją serwera

Wymagane uprawnienia Administracja istratora

Jeśli publikujesz przy użyciu protokołu HTTP, musisz mieć uprawnienia Administracja istratora na serwerze docelowym. Usługi IIS wymagają tego poziomu uprawnień. Jeśli nie publikujesz przy użyciu protokołu HTTP, potrzebujesz tylko uprawnień do zapisu w ścieżce docelowej.

Problemy z uwierzytelnianiem serwera

Podczas publikowania na serwerze zdalnym, który ma wyłączony dostęp anonimowy, zostanie wyświetlone następujące ostrzeżenie:

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

Uwaga

Uwierzytelnianie NTLM (NT challenge-response) działa, jeśli lokacja monituje o poświadczenia inne niż poświadczenia domyślne, a w oknie dialogowym zabezpieczeń kliknij przycisk OK po wyświetleniu monitu, jeśli chcesz zapisać podane poświadczenia dla przyszłych sesji. To obejście nie będzie jednak działać w przypadku uwierzytelniania podstawowego.

Korzystanie z serwerów sieci Web innych firm

Jeśli wdrażasz aplikację ClickOnce z serwera sieci Web innego niż usługi IIS, może wystąpić problem, jeśli serwer zwraca nieprawidłowy typ zawartości dla kluczowych plików ClickOnce, takich jak manifest wdrożenia i manifest aplikacji. Aby rozwiązać ten problem, zapoznaj się z dokumentacją pomocy serwera sieci Web dotyczącą sposobu dodawania nowych typów zawartości do serwera i upewnij się, że wszystkie mapowania rozszerzeń nazw plików wymienione w poniższej tabeli są spełnione.

Rozszerzenie nazwy pliku Typ zawartości
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce i zamapowane dyski

Jeśli używasz programu Visual Studio do publikowania aplikacji ClickOnce, nie można określić zamapowanego dysku jako lokalizacji instalacji. Można jednak zmodyfikować aplikację ClickOnce, aby zainstalować ją z dysku mapowanego przy użyciu generatora manifestu i edytora (Mage.exe i MageUI.exe). Aby uzyskać więcej informacji, zobacz Mage.exe (Narzędzie tworzenia i edycji manifestów) i MageUI.exe (Narzędzie tworzenia i edycji manifestów, graficzny klient).

Protokół FTP nie jest obsługiwany w przypadku instalowania aplikacji

Technologia ClickOnce obsługuje instalowanie aplikacji z dowolnego serwera sieci Web LUB serwera plików HTTP 1.1. Protokół FTP, protokół transferu plików, nie jest obsługiwany w przypadku instalowania aplikacji. Za pomocą protokołu FTP można publikować tylko aplikacje. Poniższa tabela zawiera podsumowanie tych różnic:

Typ adresu URL opis
Ftp:// Aplikację ClickOnce można opublikować przy użyciu tego protokołu.
http:// Aplikację ClickOnce można zainstalować przy użyciu tego protokołu.
https:// Aplikację ClickOnce można zainstalować przy użyciu tego protokołu.
Plik:// Aplikację ClickOnce można zainstalować przy użyciu tego protokołu.

Zapora systemu Windows

Domyślnie system Windows włącza zaporę systemu Windows. Jeśli tworzysz aplikację na komputerze z zainstalowanym systemem Windows, nadal możesz publikować i uruchamiać aplikacje ClickOnce z serwera lokalnego z uruchomionymi usługami IIS. Nie można jednak uzyskać dostępu do tego serwera z uruchomionymi usługami IIS z innego komputera, chyba że otworzysz Zaporę systemu Windows. Zobacz Pomoc systemu Windows, aby uzyskać instrukcje dotyczące zarządzania Zaporą systemu Windows.

Windows Server: Włączanie rozszerzeń serwera FrontPage

Rozszerzenia serwera programu FrontPage firmy Microsoft są wymagane do publikowania aplikacji na serwerze sieci Web systemu Windows korzystającym z protokołu HTTP.

Domyślnie system Windows Server nie ma zainstalowanych rozszerzeń serwera programu FrontPage. Jeśli chcesz użyć programu Visual Studio do publikowania na serwerze sieci Web systemu Windows Server używającym protokołu HTTP z rozszerzeniami serwera frontPage, najpierw należy zainstalować rozszerzenia serwera programu FrontPage. Instalację można wykonać za pomocą narzędzia administracyjnego Zarządzanie serwerem w systemie Windows Server.

Windows Server: zablokowane typy zawartości

Usługi IIS w systemie Windows Server 2003 blokują wszystkie typy plików z wyjątkiem niektórych znanych typów zawartości (na przykład .htm, .html, .txt itd.). Aby włączyć wdrażanie aplikacji ClickOnce przy użyciu tego serwera, należy zmienić ustawienia usług IIS, aby zezwolić na pobieranie plików typu .application, .manifest i innych niestandardowych typów plików używanych przez aplikację.

W przypadku wdrażania przy użyciu serwera IIS uruchom polecenie inetmgr.exe i dodaj nowe typy plików dla domyślnej strony sieci Web:

  • W przypadku rozszerzeń .application i .manifest typ MIME powinien mieć wartość "application/x-ms-application". W przypadku innych typów plików typ MIME powinien mieć wartość "application/octet-stream".

  • Jeśli utworzysz typ MIME z rozszerzeniem "<em>" i typem MIME "application/octet-stream", będzie zezwalać na pobieranie plików typu odblokowanego pliku. (Nie można pobrać zablokowanych typów plików, takich jak *.aspx i *.asmx ).

    Aby uzyskać szczegółowe instrukcje dotyczące konfigurowania typów MIME w systemie Windows Server, zobacz How to add a MIME type to a Web site or application (Jak dodać typ MIME do witryny sieci Web lub aplikacji).

Mapowania typów zawartości

Podczas publikowania za pośrednictwem protokołu HTTP typ zawartości (znany również jako typ MIME) dla pliku aplikacji powinien mieć wartość "application/x-ms-application". Jeśli na serwerze jest zainstalowany program .NET Framework 2.0, zostanie on ustawiony automatycznie. Jeśli to nie jest zainstalowane, należy utworzyć skojarzenie typu MIME dla katalogu wirtualnego aplikacji ClickOnce (lub całego serwera).

W przypadku wdrażania przy użyciu serwera IIS uruchom polecenie inetmgr.exe i dodaj nowy typ zawartości "application/x-ms-application" dla rozszerzenia .application .

Problemy z kompresją HTTP

Za pomocą technologii ClickOnce można wykonywać pobieranie korzystające z kompresji HTTP, technologii serwera sieci Web, która używa algorytmu GZIP do kompresowania strumienia danych przed wysłaniem strumienia do klienta. Klient — w tym przypadku ClickOnce — dekompresuje strumień przed odczytaniem plików.

Jeśli używasz usług IIS, możesz łatwo włączyć kompresję HTTP. Jednak po włączeniu kompresji HTTP jest ona włączona tylko dla niektórych typów plików — a mianowicie plików HTML i tekstowych. Aby włączyć kompresję dla zestawów (.dll), XML (.xml), manifestów wdrażania (.application) i manifestów aplikacji (.manifest), należy dodać te typy plików do listy typów dla usług IIS w celu skompresowania. Do momentu dodania typów plików do wdrożenia zostaną skompresowane tylko pliki tekstowe i HTML.

Aby uzyskać szczegółowe instrukcje dotyczące usług IIS, zobacz How to specify additional document types for HTTP compression (Jak określić dodatkowe typy dokumentów na potrzeby kompresji HTTP).