none
NullReferenceException Al ingresar a la página por Tercera vez RRS feed

  • Pregunta

  • Hola:

    Les pido ayuda de la manera más atenta por favor:

    Tengo una página web con visual.net, en la cual tengo un objeto de un componente llamado "RadarCube" de la siguiente manera:

    '---------------------------------------------------------------------------------------------------------------------------

     <%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="cargarDatosCuboParaPerfil.aspx.vb" Inherits="cargarDatosCuboParaPerfil" %>


    <%@ Register Assembly="RadarSoft.RadarCube.Web.MSAS" Namespace="RadarSoft.RadarCube.Web"
        TagPrefix="radarcube" %>


    <asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
        <asp:ObjectDataSource ID="ObjectDataSourcePerfilesUsuarios" runat="server"
            OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
            
            TypeName="DataSetPerfilesUsuariosTableAdapters.pa_BListarPerfilesUsuariosExistentesTableAdapter">
        <SelectParameters>
            <asp:Parameter DbType="Guid" Name="ApplicationId" />
            <asp:Parameter Name="idBDCubo" Type="Int16" />
            <asp:Parameter Name="idCubo" Type="Int16" />
            <asp:Parameter DbType="Guid" Name="UserId" />
        </SelectParameters>
        </asp:ObjectDataSource>

       <%-- <asp:HiddenField ID="HiddenUserId" runat="server" />
        <asp:HiddenField ID="HiddenUserName" runat="server" />
        <asp:HiddenField ID="HiddenIdBDCubo" runat="server" />
        <asp:HiddenField ID="HiddenNmBDCubo" runat="server" />
        <asp:HiddenField ID="HiddenIdCubo" runat="server" />
        <asp:HiddenField ID="HiddenNmCubo" runat="server" />
        <asp:HiddenField ID="HiddenIdPerfil" runat="server" />
        <asp:HiddenField ID="HiddenNmPerfil" runat="server" />
        <asp:HiddenField ID="HiddenNmTransaccion" runat="server" />--%>

         <radarcube:TMDCube ID="TMDCubeDefault" runat="server"
            CubeGuid="3138b2bc-0000-0000-0000-000000000000" />

    '---------------------------------------------------------------------------------------------

    Esta página es llamada mediante "Server.Transfer(rutaPágina)" desde otra página.

    Resulta que al ir a la página en cuestión, y luego a otra página  y volver a ésta, la primera y segunda vez funciona perfectamente, pero cuando ingreso por tercera vez, despues del evento Load de la masterPage de la página en cuestión, al intentar aplicar el evento  LoadComplete de la Página (Junto despues del evento Load de la página maestra), arroja el siguiente error:

    Seguimiento de la pila:
    [NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.]
       RadarSoft.RadarCube.Web.ImmanentCube.FromCube(TRadarCube cube) +119
       RadarSoft.RadarCube.Web.ImmanentCubeMSAS.FromCube(TRadarCube cube) +59
       RadarSoft.RadarCube.Web.TMDCube.OnUnload(EventArgs e) +209
       System.Web.UI.Control.UnloadRecursive(Boolean dispose) +247
       System.Web.UI.Control.UnloadRecursive(Boolean dispose) +178
       System.Web.UI.Control.UnloadRecursive(Boolean dispose) +178
       System.Web.UI.Control.UnloadRecursive(Boolean dispose) +178
       System.Web.UI.Control.UnloadRecursive(Boolean dispose) +178
       System.Web.UI.Control.UnloadRecursive(Boolean dispose) +178
       System.Web.UI.Page.UnloadRecursive(Boolean dispose) +23
       System.Web.UI.Page.ProcessRequestCleanup() +57
       System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +245
       System.Web.UI.Page.ProcessRequest() +72
       System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) +22
       System.Web.UI.Page.ProcessRequest(HttpContext context) +58
       ASP.cargardatoscuboparaperfil_aspx.ProcessRequest(HttpContext context) +37
       System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +188
       System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69
    

    Al parecer quiere utilizar la instancia de algo que no tiene en ese momento, por lo menos el componente  "TMDCube", en el evento error de la página, reviso su instancia de la siguiente manera y al parecer tiene (ya que entra al "If"):

     Protected Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Error

            If Not IsNothing(Me.TMDCubeDefault) Then
                Me.TMDCubeDefault.ToString()
            End If

        End Sub

    Corijanme si me equivoco por favor en la manera de comprobar la instancia.

    Si me pudieran segurir alguna idea de que está ocurriendo o como solucionarlo se los agradecería, la verdad no se me ocurre que pasa o si pudiera poner algún parche para solucioanrlo. Podría ser tal vez recreando la instancia de lo que falta de alguna manera o cada vez que se ejecute la página sea una isntancia de ella totalmente distinta de la misma, pero no se como se hace.

    Si me pudieran ayudar se los agredecia mucho.

    Saludos y atento a respuestas.


    • Editado SHAKMA2013 lunes, 13 de junio de 2016 21:43
    lunes, 13 de junio de 2016 21:41

Respuestas

  • Hola:

    Por lo visto estas consumiendo un control de teceros "RadarSoft.RadarCube.Web", porque no le levantas un ticket al proveedor, puede ser un problema en el control o la forma en que lo estas consumiendo, quiza se pierde la session, y no es capaz de regenerar el Cubo que stas tratando de mostrar.

    Saludos.


    Camilo Villa


    martes, 14 de junio de 2016 0:09

Todas las respuestas

  • Hola:

    Por lo visto estas consumiendo un control de teceros "RadarSoft.RadarCube.Web", porque no le levantas un ticket al proveedor, puede ser un problema en el control o la forma en que lo estas consumiendo, quiza se pierde la session, y no es capaz de regenerar el Cubo que stas tratando de mostrar.

    Saludos.


    Camilo Villa


    martes, 14 de junio de 2016 0:09
  • Hola:

    Muchas gracias por responder.

    Efectivamente compruebo si es que hay sessión justo antes del error y tambien cuando se lanza el evento error de la página, y como resultado la sessión se mantiene (sigue activa) y el id de session sigue siendo el mismo (lo último lo comprobo si por algún motivo cambiaba la session y eso afectaba).

    La verdad no se me ocurre que puede ser.

    Como tú me sugieres, haré la pregunta a radarsoft.

    saludos y gracias denuevo.

    martes, 14 de junio de 2016 14:34