lunes, 24 de abril de 2017

Error ocasionado por Response.Write y ScriptManager

La intención es hacer que cierto texto se actualice dinámicamente, según el value de un key en el web.config.

El value del key se almacena en un Session.

Si se usa Respose.Write sucede un error, y la página no responde.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:contentplaceholder id="ContentPlaceHolder3" runat="server">
<div class="menu_principal">
<ul class="lista_simple">
<%
Select Case Session("ROL")                  
Case "ROL007"
Response.Write("")
Case Else
%>
<div class="modulo">
<div class="titulo_modulo">
<% Response.Write(Session("MASTER_CALEND_ACAD"))%>
</div>
<div>
<ul class="lista_simple">
<li><a href="lima_2017-I.pdf" id="calLima"   target = "_Blank"   >Lima</a></li>
</ul>
</div>
</div>

<%
End Select
%>
</asp:contentplaceholder>
</ContentTemplate>
</asp:UpdatePanel>

Esto genera el siguiente error en el ScriptManager:
No se pudo analizar el mensaje recibido del servidor. Este error suele producirse cuando la respuesta resulta modificada por llamadas a Response.Write() o cuando los filtros de respuesta, los HttpModules o el seguimiento de servidor están habilitados.

La solución es no usar Response.Write. En vez de eso, se debe usar una función pública que devuelva el value del key.

VB
==
Public Function Titulo_Mostrar() As String
Return System.Configuration.ConfigurationManager.AppSettings("MasterCalendAcad")
End Function

Y reemplazar

ASPX
====
<% Response.Write(Session("MASTER_CALEND_ACAD"))%>

por

ASPX
====
<%=Titulo_Mostrar()%>

Listo.

lunes, 2 de enero de 2017

Crystal Reports - Error de conector de base de datos desconocido

Este mensaje aparece al asignar nuestro dataset tipado al reporte.

dtFichaInscrip.TableName = "FichaIns"
ds.Tables.Add(dtFichaInscrip)
rpt.SetDataSource(ds)

Para solucionarlo, en el archivo App.config de nuestro proyecto de Escritorio debemos agregar unas líneas, y comentar otras.

Debe quedar así:

<?xml version="1.0"?>
<configuration>
    <!--<startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>        
    </startup>-->

    <startup useLegacyV2RuntimeActivationPolicy="true">
        <supportedRuntime version="v4.0"/>
    </startup>
.
.
.