asp.net在调试模式下工作正常,并在发布到iis 7时出现oracle错误

asp.net在调试模式下工作正常,并在发布到iis 7时出现oracle错误,asp.net,oracle,iis-7,ado.net,Asp.net,Oracle,Iis 7,Ado.net,我有一个连接到oracle数据库的asp.net 3.5网站。当我在VisualStudio2008内部工作并测试网站的一个消耗大量资源的页面时,它工作得很好。但当我将此网站发布到IIS 7(在windows server 2008或windows 7上)时,它会导致oracle listener崩溃。任何关于可能导致此问题的想法都是受欢迎的 ErrorMessage:ORA-12516:TNS:侦听器找不到可用的处理程序 使用匹配协议。堆叠 StackTrace:在 System.Data.O

我有一个连接到oracle数据库的asp.net 3.5网站。当我在VisualStudio2008内部工作并测试网站的一个消耗大量资源的页面时,它工作得很好。但当我将此网站发布到IIS 7(在windows server 2008或windows 7上)时,它会导致oracle listener崩溃。任何关于可能导致此问题的想法都是受欢迎的

ErrorMessage:ORA-12516:TNS:侦听器找不到可用的处理程序 使用匹配协议。堆叠

StackTrace:在 System.Data.OracleClient.OracleException.Check(OCIRorHandle 错误句柄,Int32 rc)在 System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(字符串 用户名、字符串密码、字符串服务器名、布尔值 集成安全性、布尔unicode、布尔省略OracleConnectionName) 在 System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString 连接选项)在 System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions 选项、对象池组ProviderInfo、数据库连接池池、, DbConnection owningObject)位于 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup(池组)位于 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection 拥有连接)位于 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection,DbConnectionFactory连接工厂)位于 System.Data.OracleClient.OracleConnection.Open()位于 DMS.Data.Database.DatabaseConnection.getCommand(字符串sqlString, E:\DMS中的布尔值(isTransaction) WORK\CRM9\db\DatabaseConnection.cs:at的第561行 DMS.Data.Database.DatabaseConnection.CreateDatasetWithoutTransaction(字符串 sqlString)在E:\DMS WORK\CRM9\db\DatabaseConnection.cs:878行中 e:\DMS WORK\CRM9\DMSCRM\Today.aspx.cs:line中的DMS.CRM.Today.FillRep() 160在DMS.CRM.Today.Page_加载(对象发送者,事件参数e)在e:\DMS中 WORK\CRM9\DMSCRM\today.aspx.cs:65行 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象 o、 对象t,事件参数e)在 System.Web.Util.CallEventHandlerDelegateProxy.Callback(对象发送方, 在System.Web.UI.Control.OnLoad(EventArgs e)的 System.Web.UI.Control.LoadRecursive()位于 System.Web.UI.Page.ProcessRequestMain(布尔值 IncludeStages前同步点,布尔值IncludeStages后同步点)


这是32位还是64位windows?如果是64位,则需要安装oracle 64位驱动程序和32位驱动程序。或者将应用程序版本更改为仅x86

这是32位还是64位windows?如果是64位,则需要安装oracle 64位驱动程序和32位驱动程序。或者将应用程序版本更改为仅x86

您能否演示如何从C#代码打开和关闭与数据库的连接?该错误可能与配置问题有关,或者打开的连接太多。所有的Oracle驱动程序都正确地安装在web服务器上了吗?您能否演示如何从C#代码打开和关闭与数据库的连接?该错误可能与配置问题有关,或者打开的连接太多。是否所有Oracle驱动程序都正确地可用/安装在web服务器上?@Nahbeet-这不会引发此错误。如果存在位级别问题,则会引发错误的格式/图像异常。否,如果应用程序代码为64位,则需要64位oracle驱动程序。您的应用程序无法使用32位oracle驱动程序,因为找不到它们。我不记得确切的错误,因此它可能与您的错误不同,但您应该明确了解您安装的驱动程序类型以及它们是否与您的应用程序代码兼容。这是正确的。你必须像咬一样咬。如果不匹配,则会出现诸如格式错误异常、无效图像库等问题。我忘了提到,如果“构建配置”显示“任何CPU”,也可能发生这种情况。@Nahbeet-这不会引发此错误。如果存在位级别问题,则会引发错误的格式/图像异常。否,如果应用程序代码为64位,则需要64位oracle驱动程序。您的应用程序无法使用32位oracle驱动程序,因为找不到它们。我不记得确切的错误,因此它可能与您的错误不同,但您应该明确了解您安装的驱动程序类型以及它们是否与您的应用程序代码兼容。这是正确的。你必须像咬一样咬。如果它们不匹配,就会出现诸如格式错误异常、无效图像库等问题。我忘了提到,如果“构建配置”中说“任何CPU”,也可能发生这种情况。