2010-11-25 7 views
0

Die Anwendung funktioniert gut in Win Server 2003/IIS 6.0-Umgebung. Wenn ich den Code verschieben, um Server 2008/IIS 7.0 zu gewinnen, erhalte ich einen Fehler unter? Können Sie die Ursache des Fehlers angeben? Habe ich etwas verpasst?Arithmetische Operation führte zu einem Überlauf

Server Error in '/' Application. 

Arithmetic operation resulted in an overflow. 
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.OverflowException: Arithmetic operation resulted in an overflow. 

Stapelüberwachung:

[Overflow. Arithmetische Operation in einem Überlauf geführt] System.IntPtr.ToInt32() +37 CoreLab.Common.aa (Delegieren A_0) 1935 CoreLab.Oracle.ab.a (OracleConnection A_0) +214 CoreLab.Oracle.OracleConnection.Open() +375 MonsterWorldwide.iTime.DataAccess.TimecardDA.GetTimecardPageInfoSet (Int32 PersonId, Int32 Seitennummer, Int32 rowsPerPage, Int32 & rowsCountTotal) in c: \ inetpub \ wwwroot \ mt itimeproduction \ Data Access \ timecardda.cs: 28 MonsterWorldwide.iTime.BusinessLogic.TimecardBL.GetTimecardPageInfoSet (Int32 PersonId, Int32 Seitennummer, Int32 rowsPerPage, Int32 & rowsCountTotal) in C: \ inetpub \ wwwroot \ mtitimeproduction \ Businesslogik \ timecardbl.cs: 24 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.LoadData() in c: \ inetpub \ wwwroot \ mtitimeproduction \ webgui \ webparts \ timecardlist.ascx.cs: 112 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.Page_Load (Object sender , EventArgs e) in c: \ inetpub \ wwwroot \ mtitimeproduction \ webgui \ webparts \ timecardlist.ascx.cs: 52 System.Web.UI.Control.OnLoad (EventArgs e) +132 System.Web.UI.Control. LoadRecursive() +66 System.Web.UI.Control.LoadRecursive() +191 System.Web.UI.Control.LoadRecursive () +191 System.Web.UI.Page.ProcessRequestMain (Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428


Versionsinformationen: Microsoft .NET Framework Version: 2.0.50727.4952; ASP.NET Version: 2.0.50727.4927

+0

Können Sie den Stack-Trace und den Code, der den Fehler verursacht, posten? –

+0

[Overflow: Arithmetische Operation führte zu einem Überlauf.] System.IntPtr.ToInt32() +37 CoreLab.Common.aa (Delegieren A_0) 1935 CoreLab.Oracle.ab.a (OracleConnection A_0) +214 Corelab .Oracle.OracleConnection.Open() +375 MonsterWorldwide.iTime.DataAccess.TimecardDA.GetTimecardPageInfoSet (Int32-personId, Int32-Seitennummer, Int32-rowsPerPage, Int32 & rowsCountTotalc: \ inetpub \ wwwroot \ mtitimeproduction \ dataaccess \ timecardda.cs: 28MonsterWorldwide.iTime. BusinessLogic.TimecardBL.GetTimeCardPageInfoSet (Int32-personId, Int32-Seitennummer, Int32-rowsPerPage, Int32 & rowsCountTotal) – Ravi

+0

in c: \ inetpub \ wwwroot \ mtitimeproduction \ businesslogic \ timecardbl.cs: 24 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.LoadData() in c: \ inetpub \ wwwroot \ mtitimeproduction \ webgui \ webparts \ timecardlist.ascx.cs: 112 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.Page_Load (Objektabsender, EventArgs e) in c: \ inetpub \ wwwroot \ mtitimeproduction \ webgui \ webparts \ timecardlist.ascx.cs: 52 System.Web.UI.Control.OnLoad (EventArgs e) +132 System.Web.UI.Control.LoadRecursive() +66 System.Web.UI.Control.LoadRecursive() + 191 System.Web.UI.Control.LoadRecursive() + – Ravi

Antwort

1
[OverflowException: Arithmetic operation resulted in an overflow.] 
System.IntPtr.ToInt32() +37 
CoreLab.Common.a.a(Delegate A_0) +1935 
CoreLab.Oracle.ab.a(OracleConnection A_0) +214 

Dies sieht aus wie eine schlecht geschriebene nicht verwaltete Interop-Code, der nicht berücksichtigt, nehmen Sie den CPU-Typ und die bläst, wenn sie in einem x64-Bit-OS laufen. In einem 64-Bit-Betriebssystem sind Zeiger 64-Bit-Ganzzahlen im Gegensatz zu 32-Bit-Betriebssystemen.

Vielleicht sollten Sie die Dokumentation dieser CoreLab.Common Komponente, die Sie verwenden, überprüfen, ob 64-Bit-Systeme unterstützt werden.

Zitat aus der Dokumentation der IntPtr.ToInt32 Methode:

Overflow: Auf einer 64-Bit-Plattform, der Wert dieses Beispiels ist zu groß oder zu klein, als eine 32-Bit-Ganzzahl mit Vorzeichen darzustellen.

+0

Ja. Derzeit verwende ich 64-Bit-Betriebssystem .. Dies könnte der Schuldige sein. – Ravi

+0

Der Täter ist die Komponente, die Sie nicht mit einem 64-Bit-Betriebssystem kompatibel sind. –

+0

Ok. Danke. Ich habe 32 Bit Corelab-Komponente installiert. – Ravi

Verwandte Themen