Опит за четене или запис на защитена памет в .NET приложение

Имам проблеми с внедряването на ASP .Net приложение в IIS 6 сървър.

Когато потребителят се опита да отвори уеб страница, която има достъп до базата данни, iis сървърът хвърля „Опит за четене или запис в защитена памет“ това е StackTrace:

System.AccessViolationException: Опит за четене или запис на защитена памет. Това често е индикация, че друга памет е повредена. в Oracle.DataAccess.Client.OpsPrm.ResetValCtx(OpoPrmValCtx* pOpoPrmValCtx, Int32 ctxSize) в Oracle.DataAccess.Client.OracleParameter.ResetCtx(Int32 arraySize) в Oracle.DataAccess.Client.OracleParameter.PreBind (OracleConnection conn, IntPtr errCtx, Int32 arraySize) в Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) в Oracle.DataAccess.Client.OracleCommand.ExecuteReader() в Oracle.DataAccess.Client.OracleCommand.ExecuteScalar() в Tenaris.FSA .OracleProvider.OracleProvider.ExecuteScalar(String commandToExecute, CommandType commandType, DbParameter[] параметри) в C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.OracleProvider\OracleProvider.cs:ред 223 в Tenaris.FSA. DAC.Доставчици .DataAccessManager.ExecuteScalar(String commandToExecute, CommandType commandType, DbParameter[] параметри) в C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.DataAccessComponent\Providers\DataAccessManager.cs:ред 59 в Tenaris.FSA .DAC.Хранилище .AppointmentWayClientDAL.GetCountRegisters(Boolean onlyEnabled) в C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.DataAccessComponent\Repository\AppointmentWayClientDAL.cs:ред 39 в Tenaris.FSA.BusinessComponents.BusinessPro cess.AppointmentWayClientManager.GetCountRegisters(Boolean onlyEnabled) в C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.BusinessComponents\BusinessProcess\AppointmentWayClientManager.cs:ред 28

Това, което е рядко, защото тази грешка не трябва да се появява в управлявания код, а предишната версия на сайта работи добре. Направих няколко теста, като компилиране на приложението в компютър с платформа x86, копирах web.config от функционалната версия, копирах Oracle.DataAccess dll от функционалната версия, но грешката все още се показва.

Друго нещо, което трябва да знаете е, че има страница, която всъщност успя да попълни падащ списък, но след това страницата трябва да запълни мрежов изглед и се появява горното изключение.


person Hard Tour Vela    schedule 15.05.2013    source източник
comment
Проверете дали рестартирането на сървърното приложение (приложение на IIS 6 Server) ще премахне грешката ..... Имах същия проблем ... понякога се случва и при рестартиране на сървъра грешката изчезна.   -  person Mohsen Heydari    schedule 19.05.2013


Отговори (2)


Най-накрая можах да разреша проблема, друг разработчик използва клауза "използване", докато създава OracleParameters, беше като:

using(OracleParameter prm = SomeMethodThatCreatesIt(value,paramName))
{
 //extracode
 myCommand.Parameters.Add(prm);
}

Така че кодът трябваше да се промени на:

OracleParameter prm = SomeMethodThatCreatesIt(value,paramName);
//extracode
myCommand.Parameters.Add(prm);

Както можете да видите в проследяването на стека, проблемът беше в някакъв процес за параметри.

И така, кодът изхвърля обекта преди да го използва. Това, което не мога да разбера, е защо това изобщо работи в конзолно приложение, което беше един от моите тестове, но добре, сега работи, Благодаря на всички

person Hard Tour Vela    schedule 21.05.2013

системата е свършила от ram, за да я зареди, така че когато се опита да вземе повече от други приложения, това е защитена памет, така че вземете повече ram

person coderoaq    schedule 21.05.2013