By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,836 Members | 1,983 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,836 IT Pros & Developers. It's quick & easy.

C# exe calling an exe (process.start) - not working on one server

P: n/a
Hello,
I have a C# program that builds a txt file and then, calls an external
exe (this external exe simply imports this txt file into a DBF (DBase) file.
(we copy a template of the DBF file into the process folder where the exe
lies and then this clipper EXE does the data move from the txt file to the
DBF file).
This process works fine on at least 3 PCs (Win 2K Pro and Win XP Pro) -
irrespective of whether I schedule the process or run it by double clicking
the executable. However, when I try to run this same process on a Win2000
server, this data move doesn't happen (the DBF file doesn't get populated).
Since it is a production server, I cannot debug the code there and I am
unable to recreate the problem on any of the test machines. The program
doesn't crash or throw an exception - just doesn't do the data move and
continues as though nothing is wrong. If I call this second exe (for the data
move) manually, it works fine and moves the data.

I have this C# program set up on the windows scheduler and it is running
with privileges of an ID that has Local Adminitrator rights.

Any suggestions as to how to resolve this?
Thanks
- Joseph

Jul 21 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Joseph <Jo****@discussions.microsoft.com> writes:
Hello,
I have a C# program that builds a txt file and then, calls an external
exe (this external exe simply imports this txt file into a DBF (DBase) file.
(we copy a template of the DBF file into the process folder where the exe
lies and then this clipper EXE does the data move from the txt file to the
DBF file).
This process works fine on at least 3 PCs (Win 2K Pro and Win XP Pro) -
irrespective of whether I schedule the process or run it by double clicking
the executable. However, when I try to run this same process on a Win2000
server, this data move doesn't happen (the DBF file doesn't get populated).
Since it is a production server, I cannot debug the code there and I am
unable to recreate the problem on any of the test machines. The program
doesn't crash or throw an exception - just doesn't do the data move and
continues as though nothing is wrong. If I call this second exe (for the data
move) manually, it works fine and moves the data.

I have this C# program set up on the windows scheduler and it is running
with privileges of an ID that has Local Adminitrator rights.

Any suggestions as to how to resolve this?
Thanks
- Joseph


Add logging.

I am really guessing. It might be a security issue. I know, I know...

By the way, Win 2K cmd.exe has some command line size limitations.
Jul 21 '05 #2

P: n/a
Thank you for your quick response! I am not familier with how to add
logging... is that on the server or is that something that needs to be done
while I build the C# code?
Thanks again!
"bazad" wrote:
Joseph <Jo****@discussions.microsoft.com> writes:
Hello,
I have a C# program that builds a txt file and then, calls an external
exe (this external exe simply imports this txt file into a DBF (DBase) file.
(we copy a template of the DBF file into the process folder where the exe
lies and then this clipper EXE does the data move from the txt file to the
DBF file).
This process works fine on at least 3 PCs (Win 2K Pro and Win XP Pro) -
irrespective of whether I schedule the process or run it by double clicking
the executable. However, when I try to run this same process on a Win2000
server, this data move doesn't happen (the DBF file doesn't get populated).
Since it is a production server, I cannot debug the code there and I am
unable to recreate the problem on any of the test machines. The program
doesn't crash or throw an exception - just doesn't do the data move and
continues as though nothing is wrong. If I call this second exe (for the data
move) manually, it works fine and moves the data.

I have this C# program set up on the windows scheduler and it is running
with privileges of an ID that has Local Adminitrator rights.

Any suggestions as to how to resolve this?
Thanks
- Joseph


Add logging.

I am really guessing. It might be a security issue. I know, I know...

By the way, Win 2K cmd.exe has some command line size limitations.

Jul 21 '05 #3

P: n/a
Add logging (i.e. Write debug text to a file) to see what is happening when
the thing kicks off. It may not be execing at all - maybe the cmd line is
not found. Check the exit code from the process (if you set exit codes in
the second exe.) Also, I ran into a similar issue where I knew the app
started but just stalled. The problem what Std out redirection related. If
the std out or std err streams get full, it can block the progress of the
app and just freeze. You can test this by setting a timeout on the process
to kill it after X seconds. You should have some timeout anyway to prevent
and/or be notified of such things. The solution to my problem would have
been to create another thread to read the std out so it would not block
(still on my list.) hth

--
William Stacey, MVP
http://mvp.support.microsoft.com

"Joseph" <Jo****@discussions.microsoft.com> wrote in message
news:EA**********************************@microsof t.com...
Thank you for your quick response! I am not familier with how to add
logging... is that on the server or is that something that needs to be done while I build the C# code?
Thanks again!
"bazad" wrote:
Joseph <Jo****@discussions.microsoft.com> writes:
Hello,
I have a C# program that builds a txt file and then, calls an external exe (this external exe simply imports this txt file into a DBF (DBase) file. (we copy a template of the DBF file into the process folder where the exe lies and then this clipper EXE does the data move from the txt file to the DBF file).
This process works fine on at least 3 PCs (Win 2K Pro and Win XP Pro) - irrespective of whether I schedule the process or run it by double clicking the executable. However, when I try to run this same process on a Win2000 server, this data move doesn't happen (the DBF file doesn't get populated). Since it is a production server, I cannot debug the code there and I am unable to recreate the problem on any of the test machines. The program doesn't crash or throw an exception - just doesn't do the data move and continues as though nothing is wrong. If I call this second exe (for the data move) manually, it works fine and moves the data.

I have this C# program set up on the windows scheduler and it is running with privileges of an ID that has Local Adminitrator rights.

Any suggestions as to how to resolve this?
Thanks
- Joseph


Add logging.

I am really guessing. It might be a security issue. I know, I know...

By the way, Win 2K cmd.exe has some command line size limitations.


Jul 21 '05 #4

P: n/a
On Mon, 8 Nov 2004 15:23:02 -0800, Joseph wrote:
Since it is a production server, I cannot debug the code there and I am
unable to recreate the problem on any of the test machines. The program


The VS.Net debugger can attach to processes on other machines. You can
debug across the network, assuming you have access to the machine and the
necessary permissions.

Click Tools->Debug Processes

You can specify the machine name in the Name: dropdown and then a list of
the processes will appear. Select the right one and click attach. Your
debugger will now stop at breakpoints!

--
Chris

dunawayc[AT]sbcglobal_lunchmeat_[DOT]net

To send me an E-mail, remove the "[", "]", underscores ,lunchmeat, and
replace certain words in my E-Mail address.
Jul 21 '05 #5

P: n/a
Thank you all for your quick help and suggestions! Unfortunately, I don't
have the source code for the exe that is being called by the C# program, so
am unable to debug it (to set some exit codes - this exe is an old pgm and
doesn't return any return codes).

However, a co-worker pointed out the problem in this case - turns out that
because I was using the windows scheduler to schedule this C# program after
RDP'ing into the server, and was logging off (rather than disconnecting), the
process didn't work. Apparently, the called exe needs the user to be logged
on. Anyway, if I disconnect from my RDP session (instead of logging off), the
process works fine and the data gets pulled into the DBF file!

Thanks for your suggestions though - I'm sure I will get to use them for
other problems that I face in the future!

"Joseph" wrote:
Hello,
I have a C# program that builds a txt file and then, calls an external
exe (this external exe simply imports this txt file into a DBF (DBase) file.
(we copy a template of the DBF file into the process folder where the exe
lies and then this clipper EXE does the data move from the txt file to the
DBF file).
This process works fine on at least 3 PCs (Win 2K Pro and Win XP Pro) -
irrespective of whether I schedule the process or run it by double clicking
the executable. However, when I try to run this same process on a Win2000
server, this data move doesn't happen (the DBF file doesn't get populated).
Since it is a production server, I cannot debug the code there and I am
unable to recreate the problem on any of the test machines. The program
doesn't crash or throw an exception - just doesn't do the data move and
continues as though nothing is wrong. If I call this second exe (for the data
move) manually, it works fine and moves the data.

I have this C# program set up on the windows scheduler and it is running
with privileges of an ID that has Local Adminitrator rights.

Any suggestions as to how to resolve this?
Thanks
- Joseph

Jul 21 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.