?
Solved

Win32Exception: Unknown error (0xffffffff) when trying to run process.start()

Posted on 2010-11-18
6
Medium Priority
?
4,340 Views
Last Modified: 2013-12-17
the following are lines I'm running in an application:
this code is running in a service. when the service is started using the  LSA (local system account) I get the following exception:
System.ComponentModel.Win32Exception: Unknown error (0xffffffff)
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at ePcontrol.FrmControlCommands.ControlTimer_Tick(Object sender, EventArgs e)
=================================
System.Collections.ListDictionaryInternal
=================================
Unknown error (0xffffffff)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

NO PROBLEM when running the service logged on using a user with domain admin credentials.
try
                        {
                            //Installing the service
                            ProcessStartInfo InstallService = new ProcessStartInfo(Application.StartupPath + "\\ePagntSv.exe", " -i");
                            InstallService.WindowStyle = ProcessWindowStyle.Hidden;
                            Process pInstallService = Process.Start(InstallService);
                            pInstallService.WaitForExit();
                            InstallService = null;
                        }
                        catch (Exception ex)
                        {
                            _DoneChecking = "Yes";

                            StreamWriter SaveEx = File.AppendText(Application.StartupPath + "\\ePcontrolEx.txt");
                            SaveEx.WriteLine(ex.GetBaseException());
                            SaveEx.WriteLine("=================================");
                            SaveEx.WriteLine(ex.Data);
                            SaveEx.WriteLine("=================================");
                            SaveEx.WriteLine(ex.Message);
                            SaveEx.WriteLine("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                            SaveEx.Flush();
                            SaveEx.Close();
                        }

Open in new window

0
Comment
Question by:OrenRozen
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 4

Expert Comment

by:ricovox
ID: 34168369
Try adding the following lines BEFORE Process.Start

InstallService.CreateNoWindow = True;
InstallService.UseShellExecute = False;
0
 
LVL 4

Expert Comment

by:ricovox
ID: 34168466
If that doesn't work, perhaps you can try to execute a different exe (such as calc.exe etc.) to see if this has to do with security restrictions on the exe you are trying to launch.
0
 
LVL 3

Author Comment

by:OrenRozen
ID: 34178868
Thanks for the help.

I'll be able to check only after the weekend.

I'd also appreciate if you'll explain why you think the following lines should work/
InstallService.CreateNoWindow = True;
InstallService.UseShellExecute = False;

I think its something to do with credentials because when I set the service to log on using a user with domain admins credentials, the application is working with no problem.
Its something with the LSA credentials but I don't know where.

0
How To Reduce Deployment Times With Pre-Baked AMIs

Even if we can't include all the files in the base image, we can sometimes include some of the larger files that we would otherwise have to download, and we can also sometimes remove the most time-consuming steps. This can help a lot with reducing deployment times.

 
LVL 4

Expert Comment

by:ricovox
ID: 34198223
I think that you are right about the credentials. And we might have more troubleshooting to do before this question is resolved.

The reason I suggested those two lines are the following:

//This makes sure that no UI is produced. Sometimes services that launch programs with a UI can cause errors if the service is not allowed to interact with the desktop. This is probably NOT that important, but is worth a try. However I believe launching the process as "Hidden" has the same effect.
InstallService.CreateNoWindow = True;


//This line causes the process to be started DIRECTLY from the exe you specify, instead of by using the shell. This will only matter if there are security restrictions against using the shell to launch files.
InstallService.UseShellExecute = False;

Like I said, it is possible that neither line will help. But we can at least safely and easily eliminate them as possible issues.

I think the more important test is trying to execute different exes to see if it is a permissions issue.
0
 
LVL 3

Accepted Solution

by:
OrenRozen earned 0 total points
ID: 34198468
I did try these lines and it didn't solve the problem. what strange is that it is working on some servers but I get the problem on all other servers (this is a data-center of 450 servers).

any way, to solve the problem we've made a workaround because the customer got upset with this problem.
as this code is set to run on a remote server, what we did was to create and start the service from a management server to the remote server.
again, we didn't solve the problem but created a workaround. which I think is better to avoid the same issue at other customers.

I appreciate your help, but I don't have any way to continue and check this issue.
0
 
LVL 3

Author Closing Comment

by:OrenRozen
ID: 34424578
no solution was provided.
a workaround was created
0

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : http://www.videocopilot.net/presets/after_shake/ All lightning effects with instructions : http://www.mediaf…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question