我在尝试在Web应用程序中实例化Oracle.DataAccess.Client对象时遇到问题。
为了测试这个,我创建了一个新的asp.net Web应用程序,并将以下代码插入到Default.aspx后面的代码中:
protected void Page_Load(object sender, EventArgs e)
{
Oracle.DataAccess.Client.OracleConnection conn = new Oracle.DataAccess.Client.OracleConnection();
Oracle.DataAccess.Client.OracleCommand client = new Oracle.DataAccess.Client.OracleCommand();
}
对OracleConnection()的调用将需要2.5分钟才能返回,但OracleCommand()将会很快。如果我颠倒了2个调用的顺序,则会发生相反的情况,而OracleCommand()将会挂起。
如果我将此代码部署到IIS,它可以正常工作,所以我的问题只有Casini。有没有人遇到过这个问题或对我有任何想法?我已经尝试重新安装oracle客户端和visual studio,我甚至尝试了旧版本的oracle客户端(112012而不是112021),结果相同。
此外,我正在使用新的Windows 7计算机,我在之前的计算机上没有遇到此问题。
感谢。
答案 0 :(得分:0)
也许你应该考虑使用IIS Express代替卡西尼?
答案 1 :(得分:0)
如果你这样做,那么立即点击重新加载并再次点击页面而不重新启动调试器,你看到同样的事情吗?
我第一次看到在我的项目中调用ODP.net时出现延迟,因为Oracle客户端已加载,但从来没有这么长。它可能与网络服务器有关是非常奇怪的。
答案 2 :(得分:0)
问题在于您使用的ODP.Net版本:32位还是64位。
Visual Studio以32位进程运行,无论您的操作系统是32位还是64位。 Casini也以32位进程运行。 在IIS 7.5(在Win7-64位上),您可以将应用程序池配置为32位或64位运行。
因此,如果你使用ODP.Net 64位和Casini(32位),你会遇到问题。 但是当你在IIS上运行它时,它运行正常。