Como corrigir erro ASP.NET “O arquivo 'nnn.aspx' não tenha sido pré-compilados, e não pode ser solicitado.”?

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho um web site VS 2005 que eu publicam usando "Publish Web Site", e eu limpar todas as três caixas de seleção. Eu também tenho um projeto de implantação que pega os arquivos publicados e cria um MSI. Eu, então, instalar o pacote em um servidor de teste separado.

Em outras palavras, o site inteiro é pré-compilado. No entanto, quando eu ir para qualquer arquivo .aspx em uma subpasta específica denominada "Serviços", recebo uma HttpException:

System.Web.HttpException:. O arquivo '/myapp/Services/mypage.aspx' não tenha sido pré-compilados, e não pode ser solicitado

Se eu for para um arquivo .aspx em uma outra pasta, seja a raiz ou outra subpasta, ele funciona corretamente.

O conteúdo em si MyPage.aspx é: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="mypage.aspx.cs" Inherits="Services_mypage" %>"

No /myapp/bin pasta Eu posso ver um arquivo mypage.aspx.989dc2fb.compiled. O conteúdo deste parece apontar para um certo conjunto que também está presente na pasta bin.

Por que está ocorrendo este erro? O arquivo .compiled está lá, e a montagem está lá, e do tipo em questão está presente naquela assembléia (eu posso vê-lo em Object Browser). É algo sobre o nome ou o conteúdo do arquivo .compiled? Eu tenho a versão errada de alguma forma? O que acontece com o número aparentemente aleatório no nome do arquivo .compiled média e isso é importante?

Eu também quero mencionar que este problema apareceu de repente, e eu não sei o que muda não pode ter sido feito, uma vez que funcionou corretamente há alguns dias (mas para o melhor de meu conhecimento, nenhum).

Foi útil?

Solução

Eu não tive esse erro, mas depois de um pouco de Googling me deparei com este link, eu não tenho certeza se você já viu ainda: http://forums.asp.net/t/956297.aspx

Edit (adicionando o texto-chave):

Este erro virá quando uma referência é especificado no web.config e pasta de implantação / site não contém essas DLLs instalados na pasta do sistema ou bin não contê-los (se eles são conjuntos privados). Por exemplo: (adicionar assembly = "Namespace1.NameSpace2, versão = x.x.x.x, Culture = neutral, PublicKeyToken = 31bf3856ad364e35" /) se o seu web.config contém quaisquer conjuntos como este e servidor implantado doesnot contêm esses assembiles em bin ou GAC, em seguida, este erro ocorrerá.

As pessoas estavam relatando que faltam assembléias no servidor de destino acabou sendo a causa raiz, em seus casos, mas eles tinham o mesmo erro que você. Estranho.

Talvez seja esse o problema?

Outras dicas

Assim como uma nota de rodapé a todas as respostas acima que resolveu o problema através de republicação para substituir a falta de montagem ... Embora eu tenha resolvido este problema anteriormente com a mesma solução, eu tenho apenas encontrou outra razão para a sua ocorrência que pode ajudar os outros.

O AppPool que meu site estava funcionando sob tinha "aplicativos permitem de 32 bits" É configuração definida para falsa. Ao mudar isso para true através do diálogo "Configurações avançadas" do pool de aplicativo i resolvido o meu problema.

Espero que ajude algum outro pobre coitado.

Eu tenho esse erro quando eu atualizado um site 2,0-4,0. O erro foi causado por um PrecompiledApp.config arquivo no diretório root do site. Uma vez que eu deletei o arquivo, o site começou a trabalhar.

Eu tenho lutado para corrigir esse problema para últimos dias. Pelo menos no meu caso, a mensagem de erro foi totalmente enganosa e não tinha nada a ver com o site pré-compilado. Há muitos artigos ou posts lá fora que dão muitas respostas diferentes, que só adicionar à confusão. Eu, pessoalmente, acredito que este erro é causado principalmente devido a referências ausentes ou de versões incorretas. A fim de corrigir o problema o mais rápido possível você tem que descartar isso, ou não fixar a referência faltando / erradas.

Para fazer isso você precisa usar uma ferramenta chamada "Assembléia Binding Log Viewer". Esta ferramenta irá dizer-lhe que referências estão em falta ou ter versões erradas. Se houver um / referência incompatíveis faltando então vá em frente e corrigi-lo; caso contrário, você precisa fazer outros truques de mágica, como a verificação de App Piscina sendo de 32 bits ou permissões.

Passos:

  1. No seu servidor criar as seguintes pastas

    C: \ fuslog C: \ fuslog \ logs

  2. Assembleia Copiar Binding Log Viewer ao seu servidor em C: \ fuslog:

    Você pode encontrar o programa em um local como este

    C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ Bin \ Fuslogvw.exe

    Você pode precisar de olhar para "Arquivos de Programas" em vez de "Arquivos de Programas (x86)" ou olhar em diferentes vesions em vez de "v7.0A"

  3. Executar Fuslogvw.exe no servidor

  4. Clique em "Configuração ..."

  5. Certifique-se "Log ligam falhas no disco" está marcada

  6. Verifique o Ativar caminho de log personalizado e digite o seguinte na caixa: C: \ fuslog \ logs

  7. Clique em OK

  8. Recycle / redefinir o pool de aplicativo para impor uma nova ligação

  9. Clique em Atualizar. Agora você pode ver a ligação falhou aqui

  10. A melhor maneira de encontrar o exato de ligação é para ir para c: \ fuslog \ logs \ Default. Aqui você pode encontrar as falhas exata de ligação. Alguns são irrelevantes e você precisa encontrar o caminho crítico por tentativa e erro. A minha era a seguinte falha:

     System.Web.Mvc, Version=4.0.0.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35
    

Eu corrigido o problema, adicionando a seguinte entrada para os meus sites web.config:

<configuration>
    ...
    <runtime>
        ...
        <!-- Added this entry to fix the issue -->
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
            <bindingRedirect oldVersion="0.0.0.0-4.0.0.1" newVersion="4.0.0.0" />
        </dependentAssembly>
        ...
    </runtime>
    ...
</configuration>

Espero que isso ajude os outros a corrigir rapidamente a questão.

Este erro ocorreu para mim, e eu resolvi isso.

nomeação Quando você quiser publicar seu site, o uso de verificação fixo e montagens única página no Visual Studio

Você verá este problema será resolvido!

Eu corri para o mesmo problema. Meu problema foi corrigido pela exclusão dos arquivos nos arquivos ASP.NET temporários pasta nesta pasta:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root 

Ele acabou por ser um (não-web) DLL em falta no MSI, que eu suponho que foi usado pelos páginas dando o erro. Uma mensagem de erro bastante enganosa eu diria, como a página foi certamente pré-compilados, mas tinha uma referência que faltava para que DLL.

Nós corrigido este reiniciando o AppPool, depois de tentar várias outras soluções. Republicação não era uma opção nesta ocasião.

Esta opção resolvido o problema para mim. Basicamente, ele remove todos os arquivos órfãos esquerda após implantar anterior.

Remover arquivos adicionais no destino

Eu tive o mesmo problema hoje. Alguns fóruns contar existe estão faltando referência no seu site e que certamente não no seu caso. Apesar de ter todas as assembléias necessárias incluído, você pode se implantar o seu site em um servidor IIS com 3,5 quadro, certo?

Bem, foi o meu caso, então eu copiou o arquivo web.config de um site originais ASPX 3,5 e modificou algumas partes (removidos outras referências 3,5 de montagem) e tentar implantá-lo novamente.

Redeployment dos mesmos arquivos também resolveu esse problema no meu caso.

Então, talvez antes de tentar qualquer outra coisa primeiro tenta implementar você aplicativo novamente (o conteúdo da pasta bin deve ser suficiente)

BTW:. No meu caso o erro começou quando a unidade C ficar sem espaço

Happy codificação! CHITEC

Eu sei que o erro está reclamando sobre outra coisa, mas eu prometo no meu caso o problema era apenas a permissão Acesso insuficiente (identidade Serviço de Rede ou pool de aplicativos ou IUSR) para a conta asp.net ao trabalho com esse arquivo específico.

foi devido a Implantando incomum e misturar arquivos bin com os novos publicados em nosso ambiente VPS.

Solução :

que as permissões de arquivos específicas precisam ser substituídos com permissões de pasta bin CORRETO como outros arquivos que estão funcionando corretamente (e wo que o erro) dentro Bin.

enter descrição da imagem aqui

Comece por verificar o espaço em disco disponível. Eu tenho esse erro quando ficou sem espaço no disco rígido hospedagem IIS.

Para mim, eu tinha um script que exclui a pasta de produção e, em seguida, copia os novos arquivos.

O script não conseguiu eliminar a pasta produção propriamente deixando que os antigos e novos arquivos foram misturados em conjunto causando o erro.

Eu apagados manualmente a pasta inteira e reimplantado com sucesso ... então atualizou o script.

Se você receber esse erro ao executar um script MSBuild, as chances são de que seu projeto é um projeto de 2.0 ou 3.5 e MSBuild está usando o compilador 4.0. Tente adicionar TargetFrameworkMoniker = "3.5" a seus directivas AspNetCompiler.

i estava enfrentando esse problema quando eu implantado algumas alterações no meu site existente.

Para recuperar a questão eu deletei todos os arquivos da pasta bin e reimplantado-los.

O problema, então resolvido.

Espero que esta pode ser a ajuda alguém.

No meu caso eu não estava carregando os DLLs comuns como AjaxControlToolkit.dll, Telerik.dll etc. Fiz upload de toda a pasta publicado e que fixa-lo para mim.

No caso de uma atualização e, em seguida, recompilar. copiar todos os arquivos da pasta bin novamente e também o arquivo específico atualizado de sua respectiva pasta.

No meu caso de um erro para uma vista de barbear asp.net MVC (.cshtml), / bin contém dois arquivos .compiled para o mesmo ponto de vista. Um deles era velho e precisava ser eliminado.

Eu também tive uma segunda vista na vista controlador subpasta que também precisava ser eliminado.

A razão para um problema é que eu me mudei uma vista de vista do controlador subpasta para a pasta compartilhada, no entanto o meu processo de implantação (Visual Studio Publicar) não excluir a exibição obsoletos e arquivos view.compiled do servidor. Você pode instruir o Visual Studio para sempre limpar a pasta de destino, mas isso tornaria o processo de implantação mais lenta.

Finalmente, eu encontrei o problema. Se você usar o framework MVC como eu, atualize o seu MVC version.In meu caso eu mudei MVC 4.0.0.0 a 4.0.0.1 e verificado propriedades "local de cópia" todos das referências do projeto para "True". Depois que o meu problema resolvido. Por favor, confira a versão MVC em todos arquivo de configuração (4.0.0.0-> 4.0.0.1)

E cuidado com mensagens de aviso do compilador ASP.

Eu tive o mesmo problema quando eu comecei a usar VWD Expresso 2012 (depois que eu estava usando Expresso 2010, que costumava trabalhar bem) Fui aos meus painéis de controle de hospedagem e mudou a versão ASP.NET de 2,0-Classic para 4,0 clássico como mostrado. Problema foi.

Este erro também pode ocorrer se você tiver um arquivo .compiled no bin para uma página que não é mais uma parte de seu projeto. Recebe esta no lugar de 404 essencialmente. Remova o arquivo .compiled e então você começa 404.

No meu caso 'nnn.aspx.xxxxxxxx.compiled' arquivo foi removido por WebDeploy, porque eu corri 2 empregos simultâneos no mesmo espaço de trabalho Jenkins. O segundo trabalho removido alguns arquivos durante a criação do pacote WebDeploy.

Esta é a solução para VS 2008.

Por favor, marque a caixa como mostrado abaixo para resolver o problema.

enter descrição da imagem aqui

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