Win2003 won't run my application

  • Thread starter Thread starter Tosch
  • Start date Start date
T

Tosch

I have a Win2003 server where I installed my VB.NET application, built
with VS.NET 2002.

My main application crashes before the first line of my code is
executed with this error: "Memory at location ... could not be read."

All my additional tools that I built for my application work fine.

When I log on as administrator everything works fine but as soon as I
log on with a normal user account the crash occurs. This looks like a
permission issue but which permission?


Does anyone have an idea why this is happening.?

Tosch
 
W2K comes with .NET v1.1 preinstalled, your application is build for .NET
v1.0. Did you tested your application on v1.1 before deploying?

Willy.
 
Willy,
yes I did that a while ago. My application doesn't even come as far as
displaying my splash screen.

Tosch
 
How about a simple windows forms application with an empty form?
Did you try to remove the splash screen?

Willy.
 
All my tools (5 or 6 winform exes) run fine.

It's just my main app that crashes. I don't think it has anything to
do with the splash screen. It just displays a logo and a few labels.

My tools have more complex forms with 3rd party grids etc and they
work fine. Also sql server access works fine

I have set full control on all files on my drive and all the keys in
the registry (HKLM) for this user, no change.

I'll try and put a MsgBox() as the first line in my code and see what
happens.

Tosch
 
Willy,

it turns out my application starts 'ok' but one of the first things I
do is to check if the same application already runs.

The line: p =
Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)

is where my application crashes, no Try/Catch help in this case.

I have now added a commandline option to bypass this check since I
could not find out what is causing this line to crash.
Any ideas?

Tosch
 
Sure, don't use this hack to check if another instance is running, it breaks
on TS as you noticed.
Use a (Global) named mutex to prevent running multiple instances.

Willy.
 
But I have the same code installed in about 70 client sites and it has
always worked fine even on Win2000 Terminal Server installations.

Tosch
 
I would look at the local security policy and focus on items where
Administrator rights differ from the user you are trying to run this as.
Try to give the user "Debug Programs" rights.
 
Not sure why this fails for you. IMO No special privileges are required by
this...
Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess().ProcessName)
It works for me from a Terminal session on W2K3.
Some API's in the System.Diagnostics namespace require seDebugPrivileges,
only administrators have this privilege (however, on W2K3 and W2K this
privileges was revoked by applying ms03-43), therefore it is advisable to
use a global mutex instead of searching for the name of a running program.

Willy.
 
Back
Top