0
我有一個控制檯應用程序在直接啓動時運行良好。但是,如果我從.NET應用程序啓動應用程序,則會收到錯誤12538,這似乎是一個協議錯誤。從其他應用運行exe時獲取Oracle錯誤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();
任何想法會導致這種情況?在.NET應用程序確實使用64位Oracle時,控制檯應用程序使用32位,但我不認爲這會事,因爲他們在相同的內存空間是不能(或至少不應該是)
控制檯應用程序工作正常直接調用,所以我不會是驅動程序有問題。 我從另一個應用程序調用控制檯應用程序之前設置了TNS_ADMIN。我告訴它使用.net應用程序使用的相同的tnsnames文件。 控制檯應用程序使用的參數在兩種情況下都是相同的 – jbassking
可能是在控制檯應用程序中檢查環境變量的想法嗎? –
原來ORACLE_HOME和TNS_ADMIN正在被.net應用程序設置。我在調用控制檯應用程序之前從env vars中刪除了它們,並解決了問題。謝謝你的幫助。 – jbassking