Compartilhar via


Problemas de configuração de servidor e cliente em implantações do ClickOnce

Se você usar o Serviços de Informações da Internet (IIS, sigla em inglês) no Windows Server e sua implantação contiver um tipo de arquivo que o Windows não reconhece, como um arquivo do Microsoft Word, o IIS vai se recusar a transmitir esse arquivo e sua implantação não terá êxito.

Além disso, alguns servidores Web e software de aplicativo Web, como ASP.NET, contêm uma lista de arquivos e tipos de arquivo que você não pode baixar. Por exemplo, ASP.NET impede o download de todos os arquivos Web.config. Esses arquivos podem conter informações confidenciais, como nomes de usuário e senhas.

Embora essa restrição não cause problemas para baixar arquivos principais ClickOnce, como manifestos e assemblies, essa restrição pode impedir que você baixe arquivos de dados incluídos como parte do aplicativo ClickOnce. No ASP.NET, você pode resolver esse erro removendo o manipulador que proíbe o download desses arquivos do gerenciador de configurações do IIS. Consulte a documentação do servidor IIS para mais detalhes.

Alguns servidores Web podem bloquear arquivos com extensões como .dll, .config e .mdf. Normalmente, os aplicativos baseados no Windows incluem arquivos com algumas dessas extensões. Se um usuário tentar executar um aplicativo ClickOnce que acessa um arquivo bloqueado em um servidor Web, um erro resultará. Em vez de desbloquear todas as extensões de arquivo, o ClickOnce publica todos os arquivos de aplicativo com uma extensão de arquivo .deploy por padrão. Portanto, o administrador só precisa configurar o servidor Web para desbloquear as três extensões de arquivo a seguir:

  • .application

  • .manifest

  • .deploy

    No entanto, você pode desabilitar essa opção desmarcando a opção de extensão de arquivo Use ".deploy" na Caixa de Diálogo Opções de Publicação, nesse caso, você deve configurar o servidor Web para desbloquear todas as extensões de arquivo usadas no aplicativo.

    Você precisará configurar .manifest, .applicatione .deploy, por exemplo, se estiver usando o IIS onde não foi instalado o .NET Framework ou se estiver usando outro servidor Web (por exemplo, Apache).

ClickOnce e Secure Sockets Layer (SSL)

Um aplicativo ClickOnce funcionará bem em SSL, exceto quando o Internet Explorer gerar um prompt sobre o certificado SSL. O prompt pode ser gerado quando há algo errado com o certificado, como quando os nomes de site não correspondem ou o certificado expirou. Para fazer o ClickOnce funcionar em uma conexão SSL, verifique se o certificado está atualizado e se os dados do certificado correspondem aos dados do site.

ClickOnce e autenticação de proxy

O ClickOnce dá suporte à autenticação de proxy integrada do Windows a partir do .NET Framework 3.5. Nenhuma diretiva machine.config específica necessária. O ClickOnce não fornece suporte para outros protocolos de autenticação, como Basic ou Digest.

Você também pode aplicar um hotfix ao .NET Framework 2.0 para habilitar esse recurso. Para mais informações, consulte CORREÇÃO: Mensagem de erro ao tentar instalar um aplicativo ClickOnce criado no .NET Framework 2.0 em um computador cliente configurado para usar um servidor proxy: "Autenticação de proxy necessária".

Para mais informações, consulte o elemento <defaultProxy> (configurações de rede).

Compatibilidade entre o ClickOnce e o navegador da Web

Atualmente, as instalações do ClickOnce serão iniciadas somente se a URL do manifesto de implantação for aberta usando o Internet Explorer. Uma implantação cuja URL é iniciada de outro aplicativo, como o Microsoft Office Outlook, será iniciada com êxito somente se o Internet Explorer for definido como o navegador da Web padrão.

Observação

O Mozilla Firefox terá suporte se o provedor de implantação não estiver em branco ou se a extensão do Assistente do Microsoft .NET Framework estiver instalada. Essa extensão é empacotada com o .NET Framework 3.5 SP1. Para suporte ao XBAP, o plug-in NPWPF é ativado quando necessário.

Ativar aplicativos ClickOnce por meio do script do navegador

Se você desenvolveu uma página da Web personalizada que inicia um aplicativo ClickOnce usando o Script Ativo, talvez você descubra que o aplicativo não será iniciado em alguns computadores. O Internet Explorer contém uma configuração chamada Solicitação automática para downloadsde arquivos, o que afeta esse comportamento. Essa configuração está disponível na Guia Segurança no menu Opções que afeta esse comportamento. Ele é chamado de Aviso automático para downloads de arquivoe está listado abaixo da categoria Downloads. A propriedade é definida como Habilitar por padrão para páginas da Web da intranet e Desabilitar por padrão para páginas da Web da Internet. Quando essa configuração é definida como Desabilitar, qualquer tentativa de ativar um aplicativo ClickOnce programaticamente (por exemplo, atribuindo sua URL à document.location propriedade) será bloqueada. Nessa circunstância, os usuários só podem iniciar aplicativos por meio de um download iniciado pelo usuário, por exemplo, clicando em um hiperlink definido para a URL do aplicativo.

Problemas adicionais de configuração do servidor

Permissões de administrador necessárias

Você deve ter Permissões de administrador no servidor de destino se estiver publicando com HTTP. O IIS requer esse nível de permissões. Se você não estiver publicando usando HTTP, precisará apenas de permissão de gravação no caminho de destino.

Problemas de autenticação do servidor

Ao publicar em um servidor remoto que tenha o "Acesso Anônimo" desativado, você receberá o seguinte aviso:

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

Observação

Você pode fazer a autenticação NTLM (NT resposta de desafio) funcionar se o site solicitar credenciais diferentes de suas credenciais padrão e, na caixa de diálogo de segurança, você clicar em OK quando for solicitado se quiser salvar as credenciais fornecidas para sessões futuras. No entanto, essa solução alternativa não funcionará para Autenticação básica.

Usar servidores Web de terceiros

Se você estiver implantando um aplicativo ClickOnce de um servidor Web diferente do IIS, você poderá enfrentar um problema se o servidor estiver retornando o tipo de conteúdo incorreto para arquivos ClickOnce de chave, como o manifesto de implantação e o manifesto do aplicativo. Para resolver esse problema, consulte a documentação de Ajuda do servidor Web sobre como adicionar novos tipos de conteúdo ao servidor e verifique se todos os mapeamentos de extensão de nome de arquivo listados na tabela a seguir estão em vigor.

Extensão de nome de arquivo Tipo de conteúdo
.application application/x-ms-application
.manifest application/x-ms-manifest
.deploy application/octet-stream
.msu application/octet-stream
.msp application/octet-stream

ClickOnce e unidades mapeadas

Se você usar o Visual Studio para publicar um aplicativo ClickOnce, não poderá especificar uma unidade mapeada como o local de instalação. Desta forma, você pode modificar o aplicativo ClickOnce para instalar de uma unidade mapeada usando o Gerador de Manifesto e o Editor (Mage.exe e MageUI.exe). Para mais informações, acesse Mage.exe (Ferramenta de Geração e Edição de Manifesto) e MageUI.exe (Ferramenta de Geração e Edição de Manifesto, Cliente Gráfico).

Protocolo FTP sem suporte para instalação de aplicativos

O ClickOnce dá suporte à instalação de aplicativos de qualquer servidor HTTP 1.1 Web ou servidor de arquivos. O FTP, o Protocolo de Transferência de Arquivo, não tem suporte para a instalação de aplicativos. Você pode usar o FTP somente para publicar aplicativos. Esta tabela resume as diferenças:

Tipo de URL Descrição
ftp:// Você pode publicar um aplicativo ClickOnce usando este protocolo.
http:// Você pode instalar um aplicativo ClickOnce usando este protocolo.
https:// Você pode instalar um aplicativo ClickOnce usando este protocolo.
file:// Você pode instalar um aplicativo ClickOnce usando este protocolo.

Firewall do Windows

Por padrão, o Windows habilita o Firewall do Windows. Se você estiver desenvolvendo seu aplicativo em um computador que tenha o Windows instalado, você poderá publicar e executar aplicativos ClickOnce no servidor local que está executando o IIS. No entanto, você não pode acessar o servidor que está executando o IIS de outro computador, a menos que você abra o Firewall do Windows. Consulte a Ajuda do Windows para mais instruções sobre como gerenciar o Firewall do Windows.

Windows Server: Habilitar extensões de servidor FrontPage

As Extensões de servidor do FrontPage da Microsoft são necessárias para publicar aplicativos em um servidor Web do Windows que usa HTTP.

Por padrão, o Windows Server não tem Extensões de servidor do FrontPage instaladas. Se você quiser usar o Visual Studio para publicar em um servidor Web do Windows Server que usa HTTP com Extensões de servidor do FrontPage, instale primeiro as Extensões de servidor do FrontPage. Você pode executar a instalação usando a ferramenta gerenciar a administração do servidor no Windows Server.

Windows Server: tipos de conteúdo bloqueados

O IIS no Windows Server 2003 bloqueia todos os tipos de arquivo, exceto para determinados tipos de conteúdo conhecidos (por exemplo, .htm, .html, .txt e assim por diante). Para habilitar a implantação de aplicativos ClickOnce usando este servidor, você precisa alterar as configurações do IIS para permitir o download de arquivos do tipo .application, .manifest e quaisquer outros tipos de arquivo personalizados usados pelo seu aplicativo.

Se você implantar usando um servidor IIS, execute inetmgr.exe e adicione novos Tipos de arquivo para a página da Web padrão:

  • Para as extensões .application and .manifest o tipo MIME deve ser "application/x-ms-application". Para outros tipos de arquivo, o tipo MIME deve ser "application/octet-stream".

  • Se você criar um tipo MIME com a extensão "<em>" e o tipo MIME "application/octet-stream", ele permitirá que os arquivos de tipo de arquivo desbloqueado sejam baixados. (No entanto, tipos de arquivo bloqueados como *.aspx e *.asmx não podem ser baixados.)

    Para mais instruções específicas sobre como configurar tipos MIME no Windows Server, consulte Como adicionar um tipo MIME a um site ou aplicativo.

Mapeamentos de tipo de conteúdo

Ao publicar por HTTP, o tipo de conteúdo (também conhecido como tipo MIME) para o .application deve ser "application/x-ms-application". Se você tiver o .NET Framework 2.0 instalado no servidor, isso será definido automaticamente para você. Se isso não estiver instalado, você precisará criar uma associação de tipo MIME para o aplicativo ClickOnce vroot (ou servidor inteiro).

Se você implantar usando um servidor IIS, execute inetmgr.exe e adicione um novo tipo de conteúdo de "application/x-ms-application" para a extensão .application.

Problemas de compactação HTTP

Com o ClickOnce, você pode executar downloads que usam compactação HTTP, uma tecnologia de servidor Web que usa o algoritmo GZIP para compactar um fluxo de dados antes de enviar o fluxo para o cliente. O cliente, nesse caso, ClickOnce, descompacta o fluxo antes de ler os arquivos.

Se você estiver usando o IIS, poderá habilitar facilmente a compactação HTTP. No entanto, quando você habilita a compactação HTTP, ela só é habilitada para determinados tipos de arquivo, ou seja, HTML e arquivos de texto. Para habilitar a compactação para assemblies (.dll), XML (.xml), manifestos de implantação (.application) e manifestos de aplicativo (.manifest), você deve adicionar esses tipos de arquivo à lista de tipos para IIS compactar. Até adicionar os tipos de arquivo à sua implantação, somente os arquivos de texto e HTML serão compactados.

Para obter instruções detalhadas sobre o IIS, consulte Como especificar tipos de documento adicionais para compactação HTTP.