2010-11-25 2 views
0

Приложение хорошо работает в среде Win server 2003/IIS 6.0. Когда я перехожу код, чтобы выиграть сервер 2008/IIS 7.0, я получаю ниже ошибки? Не могли бы вы посоветовать причину ошибки? Я что-то пропустил?Арифметическая операция привела к переполнению

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. 

Трассировка стека:

[OverflowException:. Арифметические операции привело к переполнению] System.IntPtr.ToInt32() +37 CoreLab.Common.aa (делегат A_0) +1935 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) в C: \ Inetpub \ Wwwroot \ т itimeproduction \ dataaccess \ timecardda.cs: 28 MonsterWorldwide.iTime.BusinessLogic.TimecardBL.GetTimecardPageInfoSet (Int32 personId, Int32 pageNumber, Int32 rowsPerPage, Int32 & rowsCountTotal) в c: \ inetpub \ wwwroot \ mtitimeproduction \ businesslogic \ timecardbl.cs: 24 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.LoadData() в c: \ inetpub \ wwwroot \ mtitimeproduction \ webgui \ webparts \ timecardlist.ascx.cs: 112 MonsterWorldwide.iTime.WebGUI.WebParts.TimecardList.Page_Load (отправитель объекта , EventArgs e) в 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


Информация о версии: Microsoft .NET Framework версии: 2.0.50727.4952; ASP.NET версии: 2.0.50727.4927

+0

Можете ли вы опубликовать трассировку стека и код, вызывающий ошибку? – 2010-11-25 14:22:26

+0

[OverflowException: Арифметические операции привело к переполнению.] System.IntPtr.ToInt32() +37 CoreLab.Common.aa (делегат A_0) +1935 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 и rowsCountTotalc: \ inetpub \ wwwroot \ mtitimeproduction \ dataaccess \ timecardda.cs: 28MonsterWorldwide.iTime. BusinessLogic.TimecardBL.GetTimecardPageInfoSet (Int32 personId, Int32 pageNumber, Int32 rowsPerPage, Int32 и rowsCountTotal) – Ravi 2010-11-25 14:26:45

ответ

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 

Это выглядит как-то плохо написана неуправляемый код, который никак-взаимодействия не принимать во внимание тип процессора и который выдувает при запуске в 64-битных ОС. В 64-разрядной ОС указатели представляют собой 64-битные целые числа, противоположные 32-разрядной ОС.

Возможно, вам стоит проверить документацию об этом компоненте CoreLab.Common, который вы используете, поддерживает ли он 64-разрядные системы.

Цитата из документации метода IntPtr.ToInt32:

OverflowException: На 64-битной платформе, значение данного экземпляра слишком велик или слишком мал, чтобы представить в виде 32-разрядного целого числа.

Смежные вопросы