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

问题描述:

我有一个连接到oracle数据库的asp.net 3.5网站。当我在Visual Studio 2008中工作并测试一个耗费大量资源的网页时,它工作正常。但是当我将此站点发布到IIS 7(在Windows Server 2008或Windows 7上)时,它会导致Oracle侦听器崩溃。欢迎任何关于可能导致此问题的想法。asp.net可以在调试模式下正常工作,并在发布到iis时给出oracle错误7

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

堆栈跟踪:在 System.Data.OracleClient.OracleException.Check(OciErrorHandle errorHandle,的Int32 RC)在 System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(字符串 用户名,密码字符串,字符串服务器名,布尔 integratedSecurity,布尔unicode的,布尔omitOracleConnectionName) 在 System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions)在 System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions 选项,对象poolGroupProviderInfo,DbConnectionPoo升池, 的DbConnection owningObject)在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(的DbConnection owningConnection,DbConnectionPoolGroup poolGroup)在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(的DbConnection owningConnection)在 System.Data.ProviderBase。 DbConnectionClosed.OpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的)维持在 DMS.Data.Database.DatabaseConnection.getCommand(字符串的SqlString, 布尔isTransaction) System.Data.OracleClient.OracleConnection.Open()在E:\ DMS 工作\ CRM9 \ db \ DatabaseConnection.cs:行561在 DMS.Data.Database。 E:\ DMS WORK \ CRM9 \ db \ DatabaseConnection.cs中的DatabaseConnection.CreateDatasetWithoutTransaction(字符串 sqlString):行878在 DMS.CRM.Today.FillRep()在e:\ DMS WORK \ CRM9 \ DMSCRM \ today.aspx中.cs:line 160 at DMS.CRM.Today.Page_Load(Object sender,EventArgs e)in e:\ DMS WORK \ CRM9 \ DMSCRM \ today.aspx.cs:line 65 at System.Web.Util.CalliHelper .EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e)at System.Web.UI.Control.OnLoad(EventArgs e)at () System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsync点,布尔includeStagesAfterAsyncPoint)

+0

你能告诉你如何打开和关闭从C#代码到数据库的连接吗?该错误可能与配置问题有关,或者可能有太多的连接打开。所有的Oracle驱动程序是否可以正常使用/安装在Web服务器上? –

这是32位或64位窗口?如果它是64位的,那么你需要安装Oracle 64位驱动程序和32位驱动程序。或者只将您的应用程序版本更改为x86。

+0

@Nahbeet - 不会抛出这个错误。如果您遇到位级问题,则会导致引发错误的格式/图像异常。 – tsells

+0

不,如果你的应用程序代码是64位的,那么它需要64位的oracle驱动程序。您的应用程序无法使用32位Oracle驱动程序,因为它找不到它们。我不记得确切的错误,所以它可能与你的错误不一样,但你应该确定你已经安装了哪种驱动程序,以及它们是否与你的应用程序代码兼容。 – Nabheet

+0

这是正确的。你必须使用像位。如果你不匹配,你会遇到诸如格式错误异常,无效图像库等问题。 – tsells