aplicação web Precompiled ASP.NET: erro “arquivo System.Web.HttpException filename.aspx não tenha sido pré-compilados, e não pode ser solicitado.”

StackOverflow https://stackoverflow.com/questions/413221

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu criei um projeto de implantação da web usando o modelo para o Visual Studio 2008 para uma aplicação de 3,5 web ASP.NET (não web site).

Eu compilei o projeto que criou os arquivos necessários para a implantação. Copiei as pastas resultantes (bin, arquivos estáticos e todas as pastas com o aspx espaços reservados etc.) para um servidor de teste onde eu queria testar o aplicativo.

Se eu não bandeira a opção "Permitir que este site pré-compilado seja atualizável" , eu recebo essa mensagem de erro em todas as páginas de carga I no browser:

System.Web.HttpException file PAGENAME.aspx has not been pre-compiled, 
and cannot be requested.

a última linha no rastreamento de pilha:

System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(
  VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, 
  Boolean allowBuildInPrecompile) +8756366

Se eu marque a opção, está tudo bem (acho que porque o real aspx / ascx ainda estão lá em sua forma original).

Qualquer idéia o que estou ausente aqui? Existe alguma configuração ou arquivo especial que eu esqueci de copiar?

Obrigado!

Notas:

  • Eu tenho algumas referências a montagens de terceiros
  • Eu verifiquei a pasta bin no servidor de teste. Ele contém os pré-compilados montagem que contém todas as classes (eu usei refletor para analisar a montagem).
Foi útil?

Solução

Todos os arquivos ASPX deve conter apenas

Este é um arquivo gerado pelo marcador a ferramenta de pré-compilação, e deve não ser apagado!

tudo Excluir na pasta bin e publicar a web novamente. Certifique-se de levar os arquivos do diretório onde você fez a publicação.

Certifique-se de copiar os arquivos .compiled contidos na pasta bin também.

Outras dicas

Para o registro, eu esqueci de copiar estes ".compiled" arquivos ( MSDN documentação: Manipulação de arquivos Durante ASP.NET Precompilation ):

Para arquivos executáveis ??em uma Web ASP.NET aplicação, os conjuntos de compilador e arquivos com o nome do arquivo .compiled extensão. O nome é montagem gerado pelo compilador. o arquivo .compiled não contém código executável. Em vez disso, ele contém apenas as informações que ASP.NET precisa encontrar a adequada montagem.

Depois que o aplicativo pré-compilado é implantado, o ASP.NET utiliza os conjuntos na pasta Bin para processar solicitações. A saída do pré-compilação inclui aspx ou arquivos .asmx como espaços reservados para as páginas. Os arquivos de espaço reservado não contêm nenhum código. Eles existem apenas para fornecer uma maneira de chamar ASP.NET para uma solicitação de página específica e para que o arquivo permissões podem ser definidas para restringir acesso às páginas.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top