Pergunta

OK, isso começa a me deixar louco. Eu tenho um webapp asp.net. Bastante simples, a maior parte do código no .aspx.vb, e algumas aulas em App_Code.

O problema, que começou a ocorrer somente hoje (embora a maior parte do código já foi escrito), é que de vez em quando, eu tenho essa mensagem de erro:

Erro BC30002: tipo ‘XXX’ não está definido

O erro ocorre sobre cada vez que modificar os arquivos na pasta App_Code. EDIT: OK, isso acontece também se eu não tocar em nada por um tempo, em seguida, atualize a página. Eu ainda estou tentando descobrir exatamente como provocar este erro.

Eu só tenho que esperar um pouco sem tocar em nada, em seguida, atualize a página e ele funciona, mas é muito chato.

Então eu procurei um pouco, mas nada veio, exceto as importações em falta. Alguma idéia?

Foi útil?

Solução 2

Eu acho que encontrei o problema.

Meu código era assim:

Imports CMS

Sub Whatever()
    Dim a as new Arbo.MyObject() ' Arbo is a namespace inside CMS
    Dim b as new Util.MyOtherObject() ' Util is a namespace inside Util
End Sub

Eu não tenho certeza porque eu escrevi isso assim, mas acontece que o fato de que eu estava chamando aulas sem qualquer chamando toda a sua namespace ou importar todo o seu namespace foi acionando o erro.

Eu reescrevi-lo assim:

Imports CMS.Arbo
Imports CMS.Util 

Sub Whatever()
    Dim a as new MyObject()
    Dim b as new MyOtherObject()
End Sub

E agora ele funciona ...

Outras dicas

soa como uma questão de compilação pre, particularmente porque você mencionar que você obter o erro e, em seguida, esperar e ela desaparece. ASP.NET pode ser ainda no processo de compilação de forma dinâmica a sua aplicação ou que compilou os tipos em diferentes montagens.

Com a compilação dinâmica, você não está garantido para ter diferentes arquivos codebehind compilados no mesmo conjunto. Assim, o tipo que você está fazendo referência pode não ser capaz de ser resolvido no âmbito da sua pré-compilados montagem.

Tente usar a directiva "@Reference" para indicar ao tempo de execução que sua página e o arquivo que contém o seu tipo deve ser compilado no mesmo conjunto.

@ Referência - MSDN

Isto aconteceu-me depois que eu adicionei um novo projeto para uma solução de idade. Baixei a estrutura de destino para coincidir com a dos outros projectos 'mais velhos' e o erro foi embora.

Parece que isso acontece toda vez que o site gira para cima (o aplicativo é reciclado a cada vez que você tocar App_Code e provavelmente você tem IIS configurado para encerrar o website após X minutos de inatividade).

Eu aposto que tem algo a ver com o processo de trabalho asp.net não ter os direitos de acesso corretos no servidor. Portanto, a sua tentativa de carregar uma montagem e está sendo negado.

Confira neste link e Tabela 19.3 para uma lista de todos as pastas da conta do processo de trabalho deve ter acesso a, a fim de função. E não se esqueça de dar direitos a todos os arquivos e pastas no seu diretório virtual!

Substitua seu VBPROJ e arquivo vbproj.user do seu backup antes se as referências são iguais

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