从另一个应用程序运行exe时出现Oracle错误12538

时间:2014-01-21 17:08:04

标签: c# .net oracle

我有一个控制台应用程序,可以在直接启动时运行正常。但是,如果我从.NET应用程序启动应用程序,我会收到错误12538,这似乎是一个协议错误。

ProcessStartInfo startInfo = new ProcessStartInfo(executable, args);
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.RedirectStandardError = true;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;

Process p = new Process();
p.StartInfo = startInfo;
p.EnableRaisingEvents = true;
p.OutputDataReceived += new DataReceivedEventHandler(OnDataReceived);
p.ErrorDataReceived += new DataReceivedEventHandler(OnErrorReceived);
p.Exited += new EventHandler(OnProcessExit);
p.Start();
p.BeginOutputReadLine();
p.BeginErrorReadLine();
p.WaitForExit();

任何想法会导致什么?当控制台应用程序使用32位时,.NET应用程序确实使用64位Oracle,但我认为这不重要,因为它们不在相同的内存空间中(或者至少不应该是这样)

1 个答案:

答案 0 :(得分:0)

只要您安装了两个Oracle驱动程序,64/32位差异就会对事情产生影响。我猜测控制台应用程序的连接字符串是错误的,或者32位驱动程序设置错误 - 例如,64位驱动程序中的TNSNames文件不同。

This是对错误的合理描述。