Posts filed under ‘Uncategorized’

The base class includes the field ‘X’, but its type is not compatible

Si recibimos el error siguiente después de copiar nuestra web precompilada a nuestro directorio virtual donde tenemos la aplicación:

The base class includes the field ‘XXXXX’, but its type
(XXXXXXX) is not compatible with the type of control
(ASP.XXXXXX_ascx).

Es decir, hay un control de usuario que da error, sin embargo, en local nos funcionaba.
Pasa porque la caché no se ha borrado, se sigue haciendo referencia en algún sitio a una dll temporal anticuada.

SOLUCIÓN:

La mejor opción para que ni siquiera olamos este error es utilizar la opción de Build Website, y si no, borremos antes de pegar el nuevo contenido.
¿Por qué Build Website?
Esta opción te pregunta si existen archivos, y si es así, antes de copiar a la carpeta lo borra todo:

Añade el archivo app_offline ( para ver más sobre app_offline, mira mi artículo sobre el temaEste enlace abre una nueva ventana), mientras se genera la web:

Cuando termina de generar la web, borra el archivo app_offline y deja sólo el resultado.

En este post, dan otras soluciones:
http://www.velocityreviews.com/forums/t91323-user-control-codebehind-type-not-compatible-with-asp-type.htmlEste enlace abre una nueva ventana

Anuncios

septiembre 25, 2015 at 3:38 pm Deja un comentario

App_offline.htm

El app_offline.htm  (cuidado ni .aspx ni html): una página que colocada en la raíz de un dominio, hace que toda la web se redirija a dicho archivo.
Una forma cómoda y “unexpensive” de actualizar una web sin que uno reciba errores porque aún no se han terminado de copiar los archivos de una actualización al servidor.
http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspxEste enlace abre una nueva ventana

septiembre 25, 2015 at 3:27 pm Deja un comentario

DropDownlist and InitialValue

He visto muchas veces implementar una lógica innecesaria para validar un DropDownList para que sea válido el valor si no es igual al valor 0 que normalmente pertenece a la opción del selectbox: “Selecciona una opción”.
Por ejemplo he visto esto:
<asp:CustomValidator ID=”ctvDdlCampo” runat=”server” ControlToValidate=”ddlTCampo” OnServerValidate=”ctvDdlCampo_ServerValidate”></asp:CustomValidator>

Y en el método ctvDdlCampo_ServerValidate implementar lo siguiente:
public void ctvDdlTipoNoticia_ServerValidate(object sender, ServerValidateEventArgs e)
{
if (ddlAgrupaciones.SelectedIndex > 0)
{

}}

Se hace así porque nos hemos saltado una solución más elegante.
En fin ¿cómo lo hubiéramos hecho? simplemente con un RequiredFieldValidator que indique el atributo InitialValue a 0 que es el valor del “Selecciona campo”:

<asp:RequiredFieldValidator ID=”rfvddlCampo” runat=”server”

ControlToValidate=”ddlCampo” InitialValue=”0″></asp:RequiredField>

septiembre 25, 2015 at 3:24 pm Deja un comentario

Subdominios, dominios y sesiones

Para aquellos a los que manejáis sesiones entre dominios y subdominios, existe un problema con .NET y asp, las sesiones propias del lenguaje, es decir, las establecidas con el objeto Session se realizan utilizando el dominio o subdominio en el que se crea la sesión.
Hasta ahí parece todo bien, pero en realidad, esto provoca que por ejemplo prueba.midominio.com y http://www.dominio.com tengan sesiones diferentes. Si por ejemplo, para hacer búsquedas enviara a un usuario logeado a search.midominio.com, perdería la sesión.
Afortunadamente los colegas de Redmond han pensado en ello, para compartir el mismo dominio entre ambos subdominios, tenemos que indicarle bajo qué dominio se van a crear las sesiones así:

Response.Cookies[“ASP.NET_SessionId”].Value = Session.SessionID;

Response.Cookies[“ASP.NET_SessionId”].Domain = “midominio.com”;

septiembre 25, 2015 at 3:22 pm Deja un comentario

Ordenando un StringCollection: ArrayList.Adapter

Como decía en mi articulo Colecciones y discusión sobre NameValueCollection, la clase StringCollection no contiene un método típico de ArrayList o List, como es el método Sort().

Existe otra solución: utilizar un adaptador de ArrayList que ordenará toda clase que implemente el interfaz IList como es el caso de StringCollection:

ArrayList.Adapter(coll).Sort();

septiembre 25, 2015 at 3:22 pm Deja un comentario


Categorías

octubre 2019
L M X J V S D
« Sep    
 123456
78910111213
14151617181920
21222324252627
28293031  

Entradas recientes

Mis links en del.icio.us

Feeds