Problemi relativi alla configurazione del server e del client nelle distribuzioni ClickOnce

Se si usa Internet Information Services (IIS) in Windows Server e la distribuzione contiene un tipo di file che Windows non riconosce, ad esempio un file di Microsoft Word, IIS rifiuterà di trasmettere tale file e la distribuzione non riuscirà.

Inoltre, alcuni server Web e software dell'applicazione Web, ad esempio ASP.NET, contengono un elenco di file e tipi di file che non è possibile scaricare. Ad esempio, ASP.NET impedisce il download di tutti i file Web.config . Questi file possono contenere informazioni riservate, ad esempio nomi utente e password.

Anche se questa restrizione non dovrebbe causare problemi per il download di file ClickOnce di base, ad esempio manifesti e assembly, questa restrizione potrebbe impedire il download di file di dati inclusi nell'applicazione ClickOnce. In ASP.NET è possibile risolvere questo errore rimuovendo il gestore che impedisce il download di tali file da Gestione configurazione IIS. Per altri dettagli, vedere la documentazione del server IIS.

Alcuni server Web potrebbero bloccare i file con estensioni come dll, config e mdf. Le applicazioni basate su Windows includono in genere file con alcune di queste estensioni. Se un utente tenta di eseguire un'applicazione ClickOnce che accede a un file bloccato in un server Web, verrà generato un errore. Anziché sbloccare tutte le estensioni di file, ClickOnce pubblica ogni file dell'applicazione con estensione deploy per impostazione predefinita. Pertanto, l'amministratore deve configurare solo il server Web per sbloccare le tre estensioni di file seguenti:

  • .application

  • .manifest

  • .deploy

    Tuttavia, è possibile disabilitare questa opzione deselezionando l'opzione Usa estensione file ".deploy" nella finestra di dialogo Opzioni di pubblicazione, nel qual caso è necessario configurare il server Web per sbloccare tutte le estensioni di file usate nell'applicazione.

    Sarà necessario configurare .manifest, .application e .deploy, ad esempio se si usa IIS in cui non è stato installato .NET Framework o se si usa un altro server Web , ad esempio Apache.

ClickOnce e Secure Sockets Layer (SSL)

Un'applicazione ClickOnce funzionerà correttamente su SSL, tranne quando Internet Explorer genera una richiesta relativa al certificato SSL. La richiesta può essere generata in caso di problemi con il certificato, ad esempio quando i nomi del sito non corrispondono o il certificato è scaduto. Per fare in modo che ClickOnce funzioni su una connessione SSL, assicurarsi che il certificato sia aggiornato e che i dati del certificato corrispondano ai dati del sito.

Autenticazione clickOnce e proxy

ClickOnce offre supporto per l'autenticazione proxy integrata di Windows a partire da .NET Framework 3.5. Non sono necessarie direttive machine.config specifiche. ClickOnce non fornisce supporto per altri protocolli di autenticazione, ad esempio Basic o Digest.

È anche possibile applicare un hotfix a .NET Framework 2.0 per abilitare questa funzionalità. Per altre informazioni, vedere FIX: Error message when you try to install a ClickOnce application that you created in .NET Framework 2.0 on a client computer that is configured to use a proxy server: "Proxy authentication required".

Per altre informazioni, vedere <elemento defaultProxy> (impostazioni di rete).

Compatibilità clickOnce e Web browser

Attualmente, le installazioni ClickOnce verranno avviate solo se l'URL del manifesto di distribuzione viene aperto tramite Internet Explorer. Una distribuzione il cui URL viene avviato da un'altra applicazione, ad esempio Microsoft Office Outlook, verrà avviato correttamente solo se Internet Explorer è impostato come Web browser predefinito.

Nota

Mozilla Firefox è supportato se il provider di distribuzione non è vuoto o l'estensione Microsoft .NET Framework Assistant è installata. Questa estensione viene inserita in un pacchetto con .NET Framework 3.5 SP1. Per il supporto XBAP, il plug-in NPWPF viene attivato quando necessario.

Attivare le applicazioni ClickOnce tramite script del browser

Se è stata sviluppata una pagina Web personalizzata che avvia un'applicazione ClickOnce usando Scripting attivo, è possibile che l'applicazione non venga avviata in alcuni computer. Internet Explorer contiene un'impostazione denominata Richiesta automatica di download di file, che influisce su questo comportamento. Questa impostazione è disponibile nella scheda Sicurezza nel menu Opzioni che influisce su questo comportamento. Viene chiamato Richiesta automatica per i download di file ed è elencato sotto la categoria Download . La proprietà è impostata su Abilita per impostazione predefinita per le pagine Web Intranet e su Disabilita per impostazione predefinita per le pagine Web Internet. Quando questa impostazione è impostata su Disabilita, qualsiasi tentativo di attivazione di un'applicazione ClickOnce a livello di codice (ad esempio, assegnandone l'URL alla document.location proprietà) verrà bloccato. In questa circostanza, gli utenti possono avviare applicazioni solo tramite un download avviato dall'utente, ad esempio facendo clic su un collegamento ipertestuale impostato sull'URL dell'applicazione.

Altri problemi di configurazione del server

autorizzazioni Amministrazione istrator necessarie

Se si esegue la pubblicazione con HTTP, è necessario disporre delle autorizzazioni Amministrazione istrator nel server di destinazione. IIS richiede questo livello di autorizzazioni. Se non si esegue la pubblicazione tramite HTTP, è necessaria solo l'autorizzazione di scrittura per il percorso di destinazione.

Problemi di autenticazione del server

Quando si pubblica in un server remoto con "Accesso anonimo" disattivato, verrà visualizzato l'avviso seguente:

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

Nota

È possibile fare in modo che l'autenticazione NTLM (NT challenge-response) funzioni se il sito richiede credenziali diverse dalle credenziali predefinite e, nella finestra di dialogo di sicurezza, fare clic su OK quando viene richiesto se si desidera salvare le credenziali specificate per le sessioni future. Tuttavia, questa soluzione alternativa non funzionerà per l'autenticazione di base.

Usare server Web di terze parti

Se si distribuisce un'applicazione ClickOnce da un server Web diverso da IIS, è possibile che si verifichi un problema se il server restituisce il tipo di contenuto non corretto per i file ClickOnce chiave, ad esempio il manifesto della distribuzione e il manifesto dell'applicazione. Per risolvere questo problema, vedere la documentazione della Guida del server Web su come aggiungere nuovi tipi di contenuto al server e assicurarsi che siano presenti tutti i mapping delle estensioni di file elencati nella tabella seguente.

Estensione di file Content type
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce e unità mappate

Se si usa Visual Studio per pubblicare un'applicazione ClickOnce, non è possibile specificare un'unità mappata come percorso di installazione. Tuttavia, è possibile modificare l'applicazione ClickOnce per eseguire l'installazione da un'unità mappata usando il generatore di manifesti e l'editor (Mage.exe e MageUI.exe). Per altre informazioni, vedere Mage.exe (Strumento per la generazione e la modifica di manifesti) e MageUI.exe (Strumento per la generazione e la modifica di manifesti, Client grafico).

Protocollo FTP non supportato per l'installazione di applicazioni

ClickOnce supporta l'installazione di applicazioni da qualsiasi server Web HTTP 1.1 o file server. FTP, file transfer protocol, non è supportato per l'installazione di applicazioni. È possibile usare FTP solo per pubblicare applicazioni. La tabella seguente riepiloga le differenze seguenti:

Tipo di URL Descrizione
ftp:// È possibile pubblicare un'applicazione ClickOnce usando questo protocollo.
http:// È possibile installare un'applicazione ClickOnce usando questo protocollo.
https:// È possibile installare un'applicazione ClickOnce usando questo protocollo.
file:// È possibile installare un'applicazione ClickOnce usando questo protocollo.

Windows Firewall

Per impostazione predefinita, Windows abilita Windows Firewall. Se si sviluppa l'applicazione in un computer in cui è installato Windows, è comunque possibile pubblicare ed eseguire applicazioni ClickOnce dal server locale che esegue IIS. Tuttavia, non è possibile accedere a tale server che esegue IIS da un altro computer a meno che non si apre Windows Firewall. Per istruzioni sulla gestione di Windows Firewall, vedere Guida di Windows.

Windows Server: Abilitare le estensioni del server FrontPage

Le estensioni server di FrontPage di Microsoft sono necessarie per la pubblicazione di applicazioni in un server Web Windows che usa HTTP.

Per impostazione predefinita, Windows Server non ha installato le estensioni del server FrontPage. Se si desidera utilizzare Visual Studio per pubblicare in un server Web Windows Server che usa HTTP con le estensioni del server FrontPage, è prima necessario installare le estensioni del server FrontPage. È possibile eseguire l'installazione usando lo strumento Di amministrazione del server in Windows Server.

Windows Server: tipi di contenuto bloccati

IIS in Windows Server 2003 blocca tutti i tipi di file ad eccezione di determinati tipi di contenuto noti , ad esempio .htm, .html, .txt e così via. Per abilitare la distribuzione di applicazioni ClickOnce tramite questo server, è necessario modificare le impostazioni iis per consentire il download di file di tipo .application, .manifest e qualsiasi altro tipo di file personalizzato usato dall'applicazione.

Se si distribuisce usando un server IIS, eseguire inetmgr.exe e aggiungere nuovi tipi di file per la pagina Web predefinita:

  • Per le estensioni .application e .manifest , il tipo MIME deve essere "application/x-ms-application". Per altri tipi di file, il tipo MIME deve essere "application/octet-stream".

  • Se si crea un tipo MIME con estensione "<em>" e il tipo MIME "application/octet-stream", consentirà il download dei file di tipo di file sbloccato. I tipi di file bloccati, ad esempio *.aspx e *.asmx , non possono essere scaricati.

    Per istruzioni specifiche sulla configurazione dei tipi MIME in Windows Server, vedere Come aggiungere un tipo MIME a un sito Web o a un'applicazione.

Mapping dei tipi di contenuto

Durante la pubblicazione su HTTP, il tipo di contenuto (noto anche come tipo MIME) per il file con estensione application deve essere "application/x-ms-application". Se nel server è installato .NET Framework 2.0, verrà impostato automaticamente. Se non è installato, è necessario creare un'associazione di tipi MIME per la vroot dell'applicazione ClickOnce (o l'intero server).

Se si distribuisce usando un server IIS, eseguire inetmgr.exe e aggiungere un nuovo tipo di contenuto "application/x-ms-application" per l'estensione .application .

Problemi di compressione HTTP

Con ClickOnce è possibile eseguire download che usano la compressione HTTP, una tecnologia server Web che usa l'algoritmo GZIP per comprimere un flusso di dati prima di inviare il flusso al client. Il client, in questo caso ClickOnce, decomprime il flusso prima di leggere i file.

Se si usa IIS, è possibile abilitare facilmente la compressione HTTP. Tuttavia, quando si abilita la compressione HTTP, è abilitata solo per determinati tipi di file, ovvero file HTML e di testo. Per abilitare la compressione per gli assembly (con estensione dll), XML (.xml), i manifesti di distribuzione (con estensione application) e i manifesti dell'applicazione (manifesto), è necessario aggiungere questi tipi di file all'elenco dei tipi per la compressione di IIS. Finché non si aggiungono i tipi di file alla distribuzione, verranno compressi solo i file HTML e di testo.

Per istruzioni dettagliate su IIS, vedere Come specificare tipi di documento aggiuntivi per la compressione HTTP.