PROBLEMA: O Excel e Word conteúdo não fluxo como esperado do ASP.NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 318756
Sintomas
Quando você baixa conteúdo da Web para um tipo de conteúdo MIME (Multipurpose Internet Mail Extensions) que é associado um Microsoft Office aplicativo, Internet Explorer exibe uma caixa de diálogo solicita que você abrir o arquivo ou salve o arquivo em disco. Se o conteúdo é transmitido de um aplicativo ASP.NET, o botão Abrir da caixa de diálogo é desativado. O mesmo conteúdo transmitido de uma página ASP funciona conforme o esperado.
Causa
O computador cliente tem a versão 6.0.2713.1500 (ou posterior) do Shdocvw.dll instalada. A versão 6.0.2713.1500 de Shdocvw.dll está incluído no patch cumulativo do Internet Explorer do boletim de segurança da Microsoft MS02-005.

Quando você adiciona um cabeçalho Content-Type para uma resposta HTTP usando a propriedade ContentType ou o método AddHeader no ASP.NET, ASP.NET acrescentará um caractere definido para a seqüência Content-Type. Um exemplo de resposta que o aplicativo cliente recebe é da seguinte maneira:

Content-Type: application/vnd.ms-excel; charset=utf-8				

Quando o Internet Explorer recebe esse cabeçalho Content-Type, Internet Explorer procura a chave de Tipo HKEY_CLASSES_ROOT\MIME\Database\Content no Registro para localizar a extensão associada. Internet Explorer usa a extensão para determinar se o botão Abrir deve ser ativado. Quando o conjunto de caracteres é incluído na seqüência de Content-Type, esse tipo MIME não é encontrado no registro e porque Internet Explorer não pode determinar a extensão para o tipo de MIME, ele desativa o botão Abrir . Esse comportamento é resultado do patch de segurança MS02-005.

Por padrão, a seqüência de conjunto de caracteres não é adicionada em um ASP página. A seqüência de conjunto de caracteres só é adicionada a uma página de Web do ASP.NET (.aspx).
Resolução
Para resolver esse problema, remova o atributo charset da seqüência de Content-Type. Para fazer isso no ASP.NET, defina a propriedade Charset como uma seqüência de caracteres vazia da seguinte maneira:
Response.ContentType = "application/vnd.ms-excel"Response.Charset = ""				
Observação: computadores cliente que possuem o recurso Procurar na mesma janela desativado não recebem a caixa de diálogo e o servidor exibe o arquivo sem o prompt.
Situação
Esse comportamento é por design.
Mais Informações

Passos para reproduzir o problema

  1. Inicie o Microsoft Visual Studio NET.. No menu arquivo clique em novo e, em seguida, clique em Project .
  2. No painel Project Types , clique em Projetos do Visual Basic e, em seguida, clique em ASP.NET Web Application em modelos .
  3. Nomeie o aplicativo ExcelStream e, em seguida, clique em OK . WebForm1 é criado por padrão e mostradas no modo de design.
  4. No menu Exibir , clique em código para exibir o código que está atrás de formulário da Web.
  5. Adicione o seguinte código ao manipulador de eventos Page_Load :
    Response.ContentType = "application/vnd.ms-excel"Response.Write("<TABLE><TR><TD>This should appear in Excel</TD></TR></TABLE>")Response.End()					
  6. Pressione F5 para iniciar o Internet Explorer e exibir a página. Uma caixa de diálogo aparece e solicita abrir o arquivo ou salve o arquivo. Observe que o botão Abrir está desabilitado.
  7. Para habilitar o botão Abrir , adicione a seguinte linha de código antes de Response.End() :
    Response.Charset = ""					
Referências
Para obter informações adicionais sobre a procurar na mesma janela opção, clique no seguinte número de artigo para ler o artigo na Base de dados de Conhecimento da Microsoft:
162059Abrir de documentos do Office no Internet Explorer
Para obter informações adicionais sobre o patch de segurança, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
316059MS02-005: 11-fev-2002 patch cumulativo para o Internet Explorer

Propriedades

ID do Artigo: 318756 - Última Revisão: 02/01/2007 03:01:31 - Revisão: 7.4

Microsoft Office Excel 2003, Microsoft Excel 2002 Standard Edition, Microsoft Excel 2000 Standard Edition, Microsoft ASP.NET 1.0, Microsoft Office Word 2003, Microsoft Word 2002 Standard Edition, Microsoft Word 2000 Standard Edition, Microsoft Internet Explorer (Programming) 6.0, Microsoft Internet Explorer 5.5

  • kbmt kbprb KB318756 KbMtpt
Comentários