如题:
项目由于需要更换Oracle数据库(数据库是Oracle 11g),更换后,在一台测试机上测试,项目无任何问题,但是当把项目部署在正式环境后,系统时不时总是出现报错,而且不是所有的页面报错,就是登陆页面、菜单以及任务办理台几个页面经常性出错,但是其他的功能页面可以正常使用。
错误信息如下所示:
System.Web.HttpUnhandledException: 引发类型为“System.Web.HttpUnhandledException”的异常。 --->
System.InvalidOperationException: 无效操作。连接被关闭。
在 MIS.LeftFrame.Page_Load(Object sender, EventArgs e) 位置 E:\MIS
\LeftFrame.aspx.cs:行号 69
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Web.UI.Page.HandleError(Exception e)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean
includeStagesAfterAsyncPoint)
在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
在 System.Web.UI.Page.ProcessRequest()
在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
在 System.Web.UI.Page.ProcessRequest(HttpContext context)
在 ASP.leftframe_aspx.ProcessRequest(HttpContext context) 位置
c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\mis\3993a5a1\237a9fe4\App_Web_3hx5vqnz.14.cs:行号 0
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
我在网上查了一下,也有类似情况的,大部分说是数据库连接已经关闭。如果真是这样的话,那就应该所有的操作都出现类似情况,因为我数据库访问层已经封装,所有的业务操作方法都是用同一个底层的数据库操作方法,而且在测试机上运行了1个多月了,也无任何问题。
我现在有点怀疑是不是正式环境的机器没有配置好环境。
正式环境是新机器windows server 2008系统64位机器,framework3.5 sp1,其他应用软件都没有装,Oracle客服端也没装。 Oracle是在另一台服务器上(同IP段的),数据库访问是通过System.Data.OracleClient.dll访问的。
平时Oracle用得少,主要是用Sql Server,这个问题困扰我2天了。有的说应用程序所在服务器需要装Oracle客户端,但是我不装,为什么还是可以访问Oracle数据库,只是只有几个页面不能正常访问呢?
一时我也不怎么明白其中原由,还请各位帮帮忙,出出主意。
项目由于需要更换Oracle数据库(数据库是Oracle 11g),更换后,在一台测试机上测试,项目无任何问题,但是当把项目部署在正式环境后,系统时不时总是出现报错,而且不是所有的页面报错,就是登陆页面、菜单以及任务办理台几个页面经常性出错,但是其他的功能页面可以正常使用。
错误信息如下所示:
System.Web.HttpUnhandledException: 引发类型为“System.Web.HttpUnhandledException”的异常。 --->
System.InvalidOperationException: 无效操作。连接被关闭。
在 MIS.LeftFrame.Page_Load(Object sender, EventArgs e) 位置 E:\MIS
\LeftFrame.aspx.cs:行号 69
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
--- 内部异常堆栈跟踪的结尾 ---
在 System.Web.UI.Page.HandleError(Exception e)
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean
includeStagesAfterAsyncPoint)
在 System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
在 System.Web.UI.Page.ProcessRequest()
在 System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
在 System.Web.UI.Page.ProcessRequest(HttpContext context)
在 ASP.leftframe_aspx.ProcessRequest(HttpContext context) 位置
c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET
Files\mis\3993a5a1\237a9fe4\App_Web_3hx5vqnz.14.cs:行号 0
在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
我在网上查了一下,也有类似情况的,大部分说是数据库连接已经关闭。如果真是这样的话,那就应该所有的操作都出现类似情况,因为我数据库访问层已经封装,所有的业务操作方法都是用同一个底层的数据库操作方法,而且在测试机上运行了1个多月了,也无任何问题。
我现在有点怀疑是不是正式环境的机器没有配置好环境。
正式环境是新机器windows server 2008系统64位机器,framework3.5 sp1,其他应用软件都没有装,Oracle客服端也没装。 Oracle是在另一台服务器上(同IP段的),数据库访问是通过System.Data.OracleClient.dll访问的。
平时Oracle用得少,主要是用Sql Server,这个问题困扰我2天了。有的说应用程序所在服务器需要装Oracle客户端,但是我不装,为什么还是可以访问Oracle数据库,只是只有几个页面不能正常访问呢?
一时我也不怎么明白其中原由,还请各位帮帮忙,出出主意。
数据库访问层我已封装,每次操作数据库会自动会判断的,服务器上没装VS无法调试,再说,也不是每次都出现这样的问题,是概率事件。
如果是Oracle 配置问题,那应该如何配置才正确,请麻烦解释一下,谢谢!
.NET Runtime version 2.0.50727.3615 - 执行引擎错误(728979AE) (80131506)记录时间:2011/1/11 15:33:44
错误应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919413,错误模块 mscorwks.dll,版本 2.0.50727.3615,时间戳 0x4be902c7,异常代码 0xc0000005,错误偏移量 0x000546a8, 进程 ID 0x%9,应用程序启动时间 0x%10。记录时间:2011/1/11 15:35:40
.NET Runtime version 2.0.50727.3615 - 执行引擎错误(728979AE) (80131506)记录时间:2011/1/11 15:35:40
错误应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919413,错误模块 mscorwks.dll,版本 2.0.50727.3615,时间戳 0x4be902c7,异常代码 0xc0000005,错误偏移量 0x000546a8, 进程 ID 0x%9,应用程序启动时间 0x%10。
记录时间:2011/1/11 15:37:12 (系统出错时间)
事件代码: 3005
事件消息: 发生了未处理的异常。
事件时间: 2011/1/11 15:37:12
事件时间(UTC): 2011/1/11 7:37:12
事件 ID: 2692cefd2ccf4930b86de8eae12d5a53
事件序列: 16
事件匹配项: 1
事件详细信息代码: 0
应用程序信息:
应用程序域: /LM/W3SVC/1/ROOT/mis-1-129392049159398147
信任级别: Full
应用程序虚拟路径: /mis
应用程序路径: E:\WebSites\MIS\
计算机名: EBCMSERVER
进程信息:
进程 ID: 5940
进程名: w3wp.exe
帐户名: NT AUTHORITY\NETWORK SERVICE
异常信息:
异常类型: InvalidOperationException
异常消息: 无效操作。连接被关闭。
请求信息:
请求 URL: http://21.15.124.38/mis/Error.aspx?Error=无效操作。连接被关闭。
请求路径: /mis/Error.aspx
用户主机地址: 10.33.19.207
用户:
是否已经过身份验证: False
身份验证类型:
线程帐户名: NT AUTHORITY\NETWORK SERVICE
线程信息:
线程 ID: 6
线程帐户名: NT AUTHORITY\NETWORK SERVICE
是否正在模拟: False
堆栈跟踪: 在 MIS.DAL.Oracle.ExecuteDataset(CommandType commandType, String commandText, IDbDataParameter commandParameters, String tableName)
在 MIS.DAL.AbstractDBAccess.ExecuteDataset(String commandText, IDbDataParameter commandParameters)
在 Mis.EntityFactory`1.ExecuteDataSet(String cmdText, IDbDataParameter commandParameters)
在 Mis.Business.SelectMenus(String systemid, String userid, String root) 位置 E:\mis\Mis.BLL\Admin.cs:行号 117
在 Mis.BLL.Menu.SelectMenu(String systemid, String userid, String root) 位置 E:\Mis.BLL\TAdminRmsCd.cs:行号 40
在 Mis.Business.Frame.Page_Load(Object sender, EventArgs e) 位置 E:\Mis\Frame.aspx.cs:行号 68
在 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)
在 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)
在 System.Web.UI.Control.OnLoad(EventArgs e)
在 System.Web.UI.Control.LoadRecursive()
在 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
自定义事件详细信息:
.NET Runtime version 2.0.50727.3615 - 执行引擎错误(72FD79AE) (80131506)
出现上面的错误后,再进行其他操作就会出现以下错误:
错误应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919413,错误模块 mscorwks.dll,版本 2.0.50727.3615,时间戳 0x4be902c7,异常代码 0xc0000005,错误偏移量 0x000546a8, 进程 ID 0x%9,应用程序启动时间 0x%10。
和
错误应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919413,错误模块 ntdll.dll,版本 6.0.6001.18000,时间戳 0x4791a783,异常代码 0xc0000374,错误偏移量 0x000aada3, 进程 ID 0x171c,应用程序启动时间 0x01cbb2414876954e。好像iis把应用程序给关了似的。有人知道是怎么回事不?
我觉得不太可能吧,我正式环境部署之后怕有问题,就测试机一样连接的是同一台Oracle服务器。
个人感觉可能是FrameWork出了问题,或者是IIS出了问题,但是就是找不到问题所在。
主要就是事件查看器中以下这个错误,搞不清楚是什么原因造成的:
.NET Runtime version 2.0.50727.3615 - 执行引擎错误(729979AE) (80131506)
以及和
.NET Runtime version 2.0.50727.3615 - 执行引擎错误(70CD79AE) (80131506)只要出现上述问题,如果想再次访问网站,进行相应操作,进度条一直在缓慢移动,而且花费时间很长,最后就是空白页面。
接着就是以下错误:
错误应用程序 w3wp.exe,版本 7.0.6001.18000,时间戳 0x47919413,错误模块 mscorwks.dll,版本 2.0.50727.3615,时间戳 0x4be902c7,异常代码 0xc0000005,错误偏移量 0x000546a8, 进程 ID 0x%9,应用程序启动时间 0x%10。
MIS.DAL.Oracle.ExecuteDataset(CommandType commandType, String commandText, IDbDataParameter commandParameters, String tableName)
着方法里面,估计你是直接使用了一个之前打开的Connection或者静态的Connection.你应该在使用之前判断以下Connection是否打开。比如:
在你的ExecuteDataset方法里面加判断。如:if(XX.State!=ConnectionState.Open)
XX.Open();
当然,最后记得关闭。