0
직접 실행할 때 잘 실행되는 콘솔 응용 프로그램이 있습니다. 그러나 .NET 응용 프로그램에서 응용 프로그램을 시작하면 프로토콜 오류 인 것으로 보이는 오류 12538이 표시됩니다.다른 응용 프로그램에서 exe를 실행할 때 오라클 오류 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();
어떤 원인일까요? 닷넷 애플 리케이션은 64 비트 오라클을 사용하는데 콘솔 앱이 32 비트를 사용하지만 동일한 메모리 공간이 아니기 때문에 문제가 될 것이라고 생각하지 않는다. (또는 적어도 없어야한다)
콘솔 앱이 제대로 작동하므로 직접 문제가 발생하지 않습니다. 다른 앱에서 콘솔 앱을 호출하기 전에 TNS_ADMIN을 설정했습니다. .net 응용 프로그램에서 사용하는 것과 동일한 tnsnames 파일을 사용하도록 지정합니다. 콘솔 앱에서 사용중인 매개 변수는 두 경우 모두 같습니다. – jbassking
콘솔 앱에서 환경 변수를 확인하는 것이 좋을까요? –
ORACLE_HOME 및 TNS_ADMIN이 .net 응용 프로그램에 의해 설정되었습니다. 콘솔 앱을 호출하기 전에 둘 모두를 env 변수에서 제거하고 문제를 해결했습니다. 당신의 도움을 주셔서 감사합니다. – jbassking