2010-11-25 34 views
0

L'application fonctionne correctement dans l'environnement Win Server 2003/IIS 6.0. Lorsque je déplace le code pour gagner le serveur 2008/IIS 7.0, j'obtiens une erreur ci-dessous? Pourriez-vous indiquer quelle est la cause de l'erreur? Est-ce que j'ai raté quelque chose?L'opération arithmétique a entraîné un débordement

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. 

Trace de pile:

[OverflowException:. Opération arithmétique a donné lieu à un dépassement de capacité] System.IntPtr.ToInt32() 37 CoreLab.Common.aa (délégué A_0) 1.935 CoreLab.Oracle.ab.a (OracleConnection A_0) 214 CoreLab.Oracle.OracleConnection.Open() 375 MonsterWorldwide.iTime.DataAccess.TimecardDA.GetTimecardPageInfoSet (Int32 personId, Int32 pageNumber, Int32 rowsPerPage, Int32 & rowsCountTotal) dans c: \ inetpub \ wwwroot \ mt itimeproduction \ DATAACCESS \ timecardda.cs: 28 MonsterWorldwide.iTime.BusinessLogic.TimecardBL.GetTimecardPageInfoSet (Int32 personId, Int32 pageNumber, Int32 rowsPerPage, Int32 & rowsCountTotal) dans c: \ inetpub \ wwwroot \ mtitimeproduction \ BusinessLogic \ timecardbl.cs: 24 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.LoadData() dans c: \ inetpub \ wwwroot \ mtitimeproduction \ webgui \ webparts \ timecardlist.ascx.cs: 112 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.Page_Load (expéditeur d'objet) , EventArgs e) dans 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


Informations sur la version: Microsoft .NET Framework Version: 2.0.50727.4952; ASP.NET Version: 2.0.50727.4927

+0

Pouvez-vous envoyer la trace de la pile et le code qui provoque l'erreur? –

+0

[OverflowException: opération arithmétique a donné lieu à un dépassement de capacité.] System.IntPtr.ToInt32() 37 CoreLab.Common.aa (délégué A_0) 1.935 CoreLab.Oracle.ab.a (OracleConnection A_0) 214 CoreLab .Oracle.OracleConnection.Open() +375 MonsterWorldwide.iTime.DataAccess.TimecardDA.GetTimecardPageInfoSet (int32 personId, numéro de page Int32, Int32 rowsPerPage, Int32 & rowsCountTotalc: \ inetpub \ wwwroot \ mtitimeproduction \ dataaccess \ timecardda.cs: 28MonsterWorldwide.iTime. BusinessLogic.TimecardBL.GetTimecardPageInfoSet (Int32 personId, Int32 pageNumber, Int32 rowsPerPage, Int32 & rowsCountTotal) – Ravi

+0

dans c: \ inetpub \ wwwroot \ mtitimeproduction \ BusinessLogic \ timecardbl.cs: 24 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.LoadData() dans c: \ inetpub \ wwwroot \ mtitimeproduction \ webgui \ webparts \ timecardlist.ascx.cs: 112 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.Page_Load (Expéditeur d'objet, EventArgs e) dans 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

Répondre

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 

Cela ressemble à un code non géré Interop mal écrit qui ne tient pas compte du type de CPU et qui souffle lorsqu'il est exécuté dans un OS x64 bits. Dans un système d'exploitation 64 bits, les nombres entiers 64 bits sont contraires au système d'exploitation 32 bits.

Vous devriez peut-être vérifier la documentation de ce composant CoreLab.Common que vous utilisez, qu'il prenne en charge les systèmes 64 bits.

Citation de la documentation de la méthode IntPtr.ToInt32:

OverflowException: Sur une plate-forme 64 bits, la valeur de cette instance est trop grand ou trop petit pour représenter comme un entier signé 32 bits.

+0

Oui. Actuellement, j'utilise 64 bits OS .. Cela pourrait être le coupable. – Ravi

+0

Le coupable est le composant que vous utilisez n'est pas compatible avec un système d'exploitation 64 bits. –

+0

Ok. Merci. J'ai installé le composant corelab 32 bits. – Ravi