Gustavo Vedotti

Compilation Error – BC30456

Posted in .net, asp.net, development by agvedotti on 12/30/2008

(último post do ano, uhu!). Ontem me deparei com o seguinte erro:

Server Error in ‘/’ Application.


Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.
Compiler Error Message: BC30456: ‘InitializeCulture’ is not a member of ‘ASP.login_alterasenha_aspx’.

Ele começou a acontecer depois que gerei uma versão de publicação do website, conforme a tela abaixo:

image

Antes o site era deixado no servidor sem estar compilado: .vb (código-fonte) e .aspx (páginas), desta forma o erro não acontecia, o site funcionava perfeitamente. Mas como sabemos isso não é muito aconselhável por questões de segurança e performance (para mais detalhes: http://msdn.microsoft.com/en-us/library/377y0s6t.aspx).

A procura do motivo do erro achei o seguinte post com algumas possíveis soluções, mas nenhuma que solucionasse meu problema. Voltando ao código e algumas horinhas quebrando a cabeça, notei que a página que estava dando erro: AlteraSenha.aspx, implementava a classe Login_AlteraSenha, conforme a diretiva abaixo:

<%@ Page Language=”VB” MasterPageFile=”~/MaterPages/Default2.master” AutoEventWireup=”false”
CodeFile=”AlteraSenha.aspx.vb” Inherits=”Login_AlteraSenha” %>

Ao pesquisar por essa classe, descobri que outra página também a implementava:

<%@ Page Language=”VB” MasterPageFile=”~/MaterPages/Default2.master” AutoEventWireup=”false”
CodeFile=”NovaRevendaLogin.aspx.vb” Inherits=”Login_AlteraSenha” %>

O que fiz? Alterei a segunda página, fazendo-a implementar seu respectivo code-behind e ‘voalá’… Gerei uma nova versão publicada sem erros! Por algum motivo a compilação/publicação do ASP.NEt se confunde quando duas páginas referenciam a mesma classe como code-behind (algo não muito comum de se fazer), bom né?

Feliz ano novo! :)


Gustavo Vedotti

%d bloggers like this: