2

在 Vista 64 位上使用 Visual Studio 2008,如果我创建一个看起来像这样的测试网站或 Web 应用程序...

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        OracleConnection connection;
        connection = new OracleConnection("User Id=user;Password=userpass;Data Source=dataSource;");
        connection.Open();
    }
}

...并运行它,我收到以下错误。

ORA-12154: TNS:could not resolve the connect identifier specified

我知道这个关于parens的问题...... http://duanesbrain.blogspot.com/2007/01/ora-12154-using-c-with-microsoft-visual.html

Visual Studio 2008 安装在 Program Files (x86) 中,但另一个开发人员具有相同的设置,并且对他来说工作正常。项目本身不在名称带有括号的目录中。

我知道这不是我的 tnsnames.ora 或我的 sqlnet.ora 文件。我的机器设置方式与所有在这个项目上工作时间比我长得多的开发人员完全相同。

我也 100% 确定我使用的连接字符串是正确的。

如果我使用完全相同的代码创建一个控制台应用程序,它就可以正常连接。我也可以使用该连接字符串信息 ping oracle 服务器并通过命令提示符直接连接。

另一个奇怪的事情是,如果我使用 VS 2005(也安装在 Program Files (x86) 中)创建具有相同代码的 Web 应用程序或网站,它也可以正常工作。

它似乎仅限于仅使用 VS 2008 的 Web 应用程序和站点。

编辑:我应该补充一点,我的 oracle 文件夹具有当前授予每个人的所有权限。

编辑: Oracle 版本是 10.2.0

编辑:感谢您的见解,我永远无法让它和其他开发人员一起工作,我决定构建一个 XP vm 来工作会更快。几个小时后,我完成了一个设置,一切运行良好。

4

6 回答 6

1

这在调试和发布模式下都会发生吗?您是使用 WebDev.WebServer.exe (casini) exe Web 服务器还是使用 IIS 运行网站。尝试切换到另一个。仅当您调试或运行它时才会发生这种情况吗?

也许该网站以不同的用户/进程运行,并且该帐户没有为 orce 配置的路径?

于 2009-08-03T15:36:18.720 回答
1

我遇到了同样的问题,几个小时后!!!.. 发现 Oracle 安装的版本没有更新。我安装了 10.2.0.4 和 Viola(在 10.2.0.1 上它不起作用!)一些 Oracle 错误。

于 2009-10-02T10:36:08.360 回答
0

我以前在使用 oracle home 时遇到过问题。您能否检查并在需要时修改他的注册表以确保正确设置 ORACLE_HOME。注册表路径是 HKLM\SOFTWARE\ORACLE\

我有一个名为 KEY_OraOdac11h_home1 的键,ORACLE_HOME 的值是我安装 Oracle 客户端的文件路径 (C:\Oracle\product\11.1.0\client_1)

您也可以尝试添加值为 C:\Oracle\product\11.1.0\client_1 的系统环境变量 ORACLE_HOME。

将文件路径更改为安装 oracle 客户端的位置。

于 2009-07-29T23:45:51.197 回答
0

您看到的错误消息表明以下之一存在问题:您的 tnsnames.ora 文件、您的 sqlnet.ora 文件或您的数据源值。您应该检查这些文件的其他开发人员的版本。

您是否尝试过使用 EZCONNECT 方法来验证连接性?(参见 www.connectionstrings.com/oracle)您可能需要修改 sqlnet.ora 文件以启用 EZCONNECT。

Data Source=username/password@myserver//instancename
于 2009-07-31T18:51:28.600 回答
0

是 64 位/32 位的问题吗?您可以尝试将项目设置为构建 32 位,然后强制 IIS 进入 32 位模式。

如何更改 IIS: http: //support.microsoft.com/kb/894435

于 2009-07-31T21:39:09.527 回答
0

在尝试通过 .NET 连接到 Oracle 时,我遇到了不同的结果和奇怪的问题,通常这是一个奇怪的环境设置问题。

试试这个连接字符串(不使用 tns 文件,但在其中使用相同的详细信息)

数据源=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=HOST IP)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=SERVICENAME)));用户ID=USERID ;密码=密码;

这将使您开始查看连接到 Oracle 是否存在问题,或者您的 TNS 文件是否无法正确解析。

您应该在 SOFTWARE\ORACLE\ 中有一些内容,例如 HOME、ALL_HOMES、HOME0 等,因为这是驱动程序识别您的 oracle home 并注册 TNS 文件的方式。

我还会在您运行 VS 的开发箱上查看您的防火墙,并检查您的 dll 引用以确保您使用的是相同的 Oracle Dll - 您使用的是 MS oracle dll 还是来自 Oracle 的那些?

于 2009-08-03T15:57:22.167 回答