我在IIS 6服务器上实现ASP .Net应用程序时遇到了麻烦。当用户尝试打开访问数据库的网页时,IIS服务器会抛出“尝试读取或写入受保护的内存”错误,以下是StackTrace:
System.AccessViolationException: 尝试读取或写入受保护的内存。这经常表明其他内存已损坏。 at Oracle.DataAccess.Client.OpsPrm.ResetValCtx(OpoPrmValCtx* pOpoPrmValCtx, Int32 ctxSize) at Oracle.DataAccess.Client.OracleParameter.ResetCtx(Int32 arraySize) at Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection conn, IntPtr errCtx, Int32 arraySize) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader() at Oracle.DataAccess.Client.OracleCommand.ExecuteScalar() at Tenaris.FSA.OracleProvider.OracleProvider.ExecuteScalar(String commandToExecute, CommandType commandType, DbParameter[] parameters) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.OracleProvider\OracleProvider.cs:line 223 at Tenaris.FSA.DAC.Providers.DataAccessManager.ExecuteScalar(String commandToExecute, CommandType commandType, DbParameter[] parameters) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.DataAccessComponent\Providers\DataAccessManager.cs:line 59 at Tenaris.FSA.DAC.Repository.AppointmentWayClientDAL.GetCountRegisters(Boolean onlyEnabled) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.DataAccessComponent\Repository\AppointmentWayClientDAL.cs:line 39 at Tenaris.FSA.BusinessComponents.BusinessProcess.AppointmentWayClientManager.GetCountRegisters(Boolean onlyEnabled) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.BusinessComponents\BusinessProcess\AppointmentWayClientManager.cs:line 28
这很奇怪,因为该错误不应出现在托管代码中,并且先前版本的站点运行良好。我进行了几次测试,例如在x86平台PC上编译应用程序,从功能版本复制web.config,从功能版本复制Oracle.DataAccess dll,但错误仍然显示。
另外,您应该知道有一个页面实际上成功填充了下拉列表,但是然后页面必须填充网格视图,上面出现了异常。
System.AccessViolationException: 尝试读取或写入受保护的内存。这经常表明其他内存已损坏。 at Oracle.DataAccess.Client.OpsPrm.ResetValCtx(OpoPrmValCtx* pOpoPrmValCtx, Int32 ctxSize) at Oracle.DataAccess.Client.OracleParameter.ResetCtx(Int32 arraySize) at Oracle.DataAccess.Client.OracleParameter.PreBind(OracleConnection conn, IntPtr errCtx, Int32 arraySize) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader(Boolean requery, Boolean fillRequest, CommandBehavior behavior) at Oracle.DataAccess.Client.OracleCommand.ExecuteReader() at Oracle.DataAccess.Client.OracleCommand.ExecuteScalar() at Tenaris.FSA.OracleProvider.OracleProvider.ExecuteScalar(String commandToExecute, CommandType commandType, DbParameter[] parameters) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.OracleProvider\OracleProvider.cs:line 223 at Tenaris.FSA.DAC.Providers.DataAccessManager.ExecuteScalar(String commandToExecute, CommandType commandType, DbParameter[] parameters) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.DataAccessComponent\Providers\DataAccessManager.cs:line 59 at Tenaris.FSA.DAC.Repository.AppointmentWayClientDAL.GetCountRegisters(Boolean onlyEnabled) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.DataAccessComponent\Repository\AppointmentWayClientDAL.cs:line 39 at Tenaris.FSA.BusinessComponents.BusinessProcess.AppointmentWayClientManager.GetCountRegisters(Boolean onlyEnabled) in C:\Congelados FSA\FSA 1er Entregable 05052013\Tenaris.FSA.BusinessComponents\BusinessProcess\AppointmentWayClientManager.cs:line 28
这很奇怪,因为该错误不应出现在托管代码中,并且先前版本的站点运行良好。我进行了几次测试,例如在x86平台PC上编译应用程序,从功能版本复制web.config,从功能版本复制Oracle.DataAccess dll,但错误仍然显示。
另外,您应该知道有一个页面实际上成功填充了下拉列表,但是然后页面必须填充网格视图,上面出现了异常。