Арифметическая операция привела к переполнению - PullRequest
0 голосов
/ 25 ноября 2010

Приложение хорошо работает в среде Win server 2003 / IIS 6.0. Когда я перемещаю код на win server 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.a.a (Делегат 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 columnsPerPage, Int32 & rowCountTotal) в c: \ inetpub \ wwwroot \ mtitimeproduction \ dataaccess \ timecardda.cs: 28 MonsterWorldwide.iTime. 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 (логическое значение includeStagesBeforeAsyncPoint, логическое значение includeStagesAfterAsyncPoint) + 2428


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

1 Ответ

1 голос
/ 25 ноября 2010
[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-разрядное целое число со знаком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...