none
Nach Migration von WinServer2003 auf 2012 gehen Funktionen nicht mehr RRS feed

  • Frage

  • Hallo alle,

    eigentlich habe ich die Frage schon mal gestellt.
    Ich kappier beim besten Willen nicht, was da abgeht.
    Langsam drängt die Zeit und meine ist leider sehr begrenzt hierfür.
    Also von vorne mit dem Problem: und hoffentlich besser formuliert.

    Es wäre hier auch eineAuftragsarbeit möglich!

    Vorab: Im Webserver von VisualStudio 2015 funktioniert es.
           Wenn ich auf den IIS 8.5 wechsele kommt der Fehler.

    Es handelt sich um .NET 2.0, in C#, wie in Fehlermeldung ersichtlich.

    Über einen Button wechsle ich von einer Seite, die Informationen aus einer Reihe von Checkboxen sammelt,
    auf die Ergebnisseite, die eine Auswertung über die angekreuzten Checkboxen ausgibt (CrystalReports).


    ---------------------------------------------------
    Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt. 
    Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung. Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde. 

    Ausnahmedetails: System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

    Quellfehler: 


    Zeile 110:        Response.Expires = 0;
    Zeile 111:
    Zeile 112:        string typeReport = Session["typeReport"].ToString();
    Zeile 113:
    Zeile 114:        string queryReport= "";

    Quelldatei: d:\Workspace\SVN\VStudio\GIS\Web\fm.gis-vs.de\PrintReport.aspx.cs    Zeile: 112 

    Stapelüberwachung: 

    [NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.]
       PrintReport.Page_Load(Object sender, EventArgs e) in d:\Workspace\SVN\VStudio\GIS\Web\fm.gis-vs.de\PrintReport.aspx.cs:112
       System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +24
       System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +41
       System.Web.UI.Control.OnLoad(EventArgs e) +131
       System.Web.UI.Control.LoadRecursive() +65
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2427

    Versionsinformationen: Microsoft .NET Framework-Version:2.0.50727.8794; ASP.NET-Version:2.0.50727.8794 
    ----------------------------------------------------------------------


    Der Button

        asp:Button ID="Bt_GenerateEtiquette" runat="server" Text="Berichte erstellen" OnClick="Bt_GenerateEtiquette_Click" 

    ruft eine Server-Function auf:

        protected void Bt_GenerateEtiquette_Click(object sender, EventArgs e)
        {
            GridViewRowCollection gvrc = Gv_Etiquette.Rows;
            ReportBO reportBO;
            ArrayList list = new ArrayList();
    
            for (int i = 0; i < gvrc.Count; i++)
            {
                GridViewRow r = gvrc[i];
                CheckBox check = (CheckBox)r.Cells[2].Controls[1];
                if (check.Checked)
                {
                    reportBO = new ReportBO();
                    reportBO.inventoryNumber = this.convertASCIItoChar(r.Cells[0].Text);
                    reportBO.machineName = this.convertASCIItoChar(r.Cells[1].Text);
    
                    list.Add(reportBO);
                }
            }
            if (list.Count == 0)
            {
                Lb_Erro.Text = "Es wurde kein Wert ausgewählt.";
            }
            else
            {
                string queryReport = reportBC.generateMachineBarcode(list, customer.id, customer.name);
                Session["queryReport"] = queryReport;
                Session["typeReport"] = "BarcodeEtiquette";
                this.callJavaScript("BarcodeEtiquet");
            }
        }

    Abschliessend wird dann "callJavaScript("BarcodeEtiquet")" ausgeführt.
    Es ist dabei egal, ob ich über das JavaScript oder über "Response.Redirect()" die neue Seite aufrufe.
    Der anschliesende Fehler ist derselbe.

        private void callJavaScript(string type) 
        {
        //    string javaS = "<script>window.open('PrintReport.aspx?typ=" + type + "');</script>";
        //    ClientScript.RegisterClientScriptBlock(GetType(), "newWindows", javaS);
            Response.Redirect("PrintReport.aspx?typ=" + type);
        }

    Hier nun die aufgerufene Seite mit Kommentar zum Fehler: (könnte es auch mit CrystalReports Zusammenhängen?)
    public partial class PrintReport : System.Web.UI.Page
    {
        DBConnection conn = new DBConnection();
        ReportDocument rd = new ReportDocument();
    
        protected void Page_Unload(object sender, EventArgs e)
        {
            rd.Close();
        }
    
        protected void Page_Load(object sender, EventArgs e)
        {
            //Remove Cache
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.CacheControl = "no-cache";
            Response.ExpiresAbsolute = DateTime.Now;
            Response.Buffer = true;
            Response.Expires = 0;
    
            string typeReport = Session["typeReport"].ToString();   // Das ist die Fehlerzeile in der Fehlermeldung
                                                                    // Es erfolgt aber die korrekte Zuweisung
            string queryReport= "";
            string queryReportHeader = "";
    
            DataSet dsHeader = new DataSet();
            DataSet ds = null;
            string fileReport = "";
    
    
            if (Session["queryReport"] != null)
            {
                queryReport = Session["queryReport"].ToString();
                ds = conn.executeSelectQuery(queryReport);
            }
            if (Session["queryReportHeader"] != null)
            {
                queryReportHeader = Session["queryReportHeader"].ToString();
                dsHeader = conn.executeSelectQuery(queryReportHeader);
            }
                   
    
            if (typeReport.Equals("MachineBarcode"))
            {
                fileReport = "Reports/RPbarcodeZustand.rpt";
                ds.Tables[0].TableName = "BarcodeZustand";
            }
            if (typeReport.Equals("ArticleBarcode"))
            {
                fileReport = "Reports/RPbarcodeArticle.rpt";
                ds.Tables[0].TableName = "BarcodeArticle";
            }
            if (typeReport.Equals("TrgsTable"))
            {
                fileReport = "Reports/RPtrgsTable.rpt";
                ds.Tables[0].TableName = "trgsData";
                dsHeader.Tables[0].TableName = "trgsHeader";   
                ds.Tables.Add(dsHeader.Tables[0].Copy());           
            }
            if (typeReport.Equals("TrgsGraphic"))
            {
                fileReport = "Reports/RPtrgsGraphic.rpt";
                ds.Tables[0].TableName = "trgsData";
                dsHeader.Tables[0].TableName = "trgsHeader";
                ds.Tables.Add(dsHeader.Tables[0].Copy());   
            }
            if (typeReport.Equals("Steuerung"))
            {
                fileReport = "Reports/RPsteuerung.rpt";
            }
            if (typeReport.Equals("BarcodeEtiquette"))
            {
                fileReport = "Reports/RPbarcodeEtiquette.rpt";
                ds.Tables[0].TableName = "BarcodeZustand";
            }
            
            rd.Load(Server.MapPath(fileReport));  // "rd" ist der CrystalReport Reader
    
            if (ds != null)
             rd.SetDataSource(ds);   // Hier erst erfolgt der Absturz im Debugger-Einzelschritt mit obiger Meldung.
            
            CrystalReportViewer.ReportSource = rd;        
            CrystalReportViewer.DataBind();
        }
    
        protected void CrystalReportViewer_Load(object sender, EventArgs e)
        {
            CrystalReportViewer.DataBind();
        }
    }




    • Bearbeitet Helmut19 Sonntag, 5. November 2017 12:36
    Sonntag, 5. November 2017 11:54