如题:
   项目由于需要更换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数据库,只是只有几个页面不能正常访问呢?
    一时我也不怎么明白其中原由,还请各位帮帮忙,出出主意。

解决方案 »

  1.   

       谢谢“java3344520"给的宝贵意见!
       我对Oracle数据库不太了解,“数据库连接限制”在什么地方可以看到,请解释下,谢谢了!
       还有,我看了系统的事件查看器,错误显示如下所示:系统事件查看器出现以下错误(按时间先后):记录时间:2011/1/11 15:33:44
    .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://10.33.101.22/mis/Error.aspx?Error=无效操作。连接被关闭。  
      请求路径: /mis/Error.aspx  
      用户主机地址: 10.33.101.22  
      用户:   
      是否已经过身份验证: 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)
      
     
    自定义事件详细信息:   
      

  2.   

    有的说应用程序所在服务器需要装Oracle客户端,但是我不装,为什么还是可以访问Oracle数据库,只是只有几个页面不能正常访问呢?建立你还是安装正式的oracle ODAC套件(包含完整的ado.net驱动)。尤其是生产环境。
      

  3.   


    我把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。
      

  4.   

    测试环境和开发环境不一样,安装必要的client、或者Driver,另外,将工程清除干净,重新在新环境编译