Windows Service Starts and Immediately Stops

P

pbd22

OK, thanks for your patience. I can answer most of the below to the
best of my ability except #1. I will have an answer to that ASAP.
But, for now...

1) What component is writing the error message to the eventlog".

I am sorry but I am still trying to figure out where to look to answer
this
question. I will come back with a reply as soon as I figure it out.

2) You also have an *exe* in the solution that gets *called* by ??

We had an STA/MTA problem in our project that was solved by calling
an external VB6 project. It gets called using System.Diagnostics.

3) What kind of exe is this?

The exe is a VB6 project that, itself makes calls to the same DLLs
that my C#
project uses.

4) how is it "called"?

ProcessStartInfo psi = new ProcessStartInfo(path, file);

I then put a lock on the process and write a basic run/enqueue block.

5) Is it getting called in terms of method calls, or do you mean that
it's getting started from
within another component?

The exe gets fired if a certain code block evaluates to true. So, I
believe the answer
to your question is method calls.
 
P

pbd22

I think I should also add that the EXE file, while sloppy, is not
likely to explain (or contribute to)
the current problem (I am guessing). The current folder only has files
of a certain type. This means that the code block that fires the exe
will never be entered.
 
W

Willy Denoyette [MVP]

pbd22 said:
OK, thanks for your patience. I can answer most of the below to the
best of my ability except #1. I will have an answer to that ASAP.
But, for now...

1) What component is writing the error message to the eventlog".

I am sorry but I am still trying to figure out where to look to answer
this
question. I will come back with a reply as soon as I figure it out.

2) You also have an *exe* in the solution that gets *called* by ??

We had an STA/MTA problem in our project that was solved by calling
an external VB6 project. It gets called using System.Diagnostics.

What kind of STA/MTA problems are you expecting to solve, that could not be
solved in the service?
3) What kind of exe is this?

The exe is a VB6 project that, itself makes calls to the same DLLs
that my C#
project uses.

VB6 project right, but is the exe a windows program or an ActiveX exe (
out-proc COM server)?
4) how is it "called"?

ProcessStartInfo psi = new ProcessStartInfo(path, file);

This is how the program is is getting started, which is not what I mean with
"getting called". So I guess it's a simple standalone exe, which does not
expose methods that you can call from a client.

I then put a lock on the process and write a basic run/enqueue block.

5) Is it getting called in terms of method calls, or do you mean that
it's getting started from
within another component?

The exe gets fired if a certain code block evaluates to true. So, I
believe the answer
to your question is method calls.

This is the confusing part, are you calling methods on this exe from your
service code?
As I said before, my guess is that this exe is stand-alone, in the sense
that it's getting *started* from within your service, but it's functionality
is never called in terms of method calls from external clients (your
service).

To resume, as far as I can see, this is what you have:

A Windows Service (C#) that calls into native COM (VB6 dll's),
The service starts an ( VB6 ) exe (conditional), that on it's turn calls the
same COM objects as above.
The service runs as LocalSystem, the VB6 exe runs in the same security
context as the service, that is it runs as a background program in the
LocalSystem account.
There is no single component that explicitly interacts with the users
desktop.
One components has a security issue when accessing a (disk) resource, and
logs this fact to the eventlog.

First thing you need to find out is, which component writes to the log and
why.
Second thing you need to find out is what kind of exe the VB6 EXE is, none
of the VB6 EXE's are well suited to be called from a service. The reason is
that all of them need to run in an interactive desktop security context. All
VB6 Windows exe's have a visible top level window, while VB6 ActiveX EXE's
have a strong binding with the desktop too.
Another remark is that VB6 EXE's can only create instances of apartment type
COM objects. The same is true for VB6 COM DLL's, VB6 can only build
"apartment" compatible components, these need an STA to run in. Windows
Services (.NET) threads all enter the MTA (by default), so you need to pay
special attention when spawning threads that call into COM, they need to
enter an STA, but STA threads need to pump the windows message queue. So
here you have a potential problem.

Windows services have strong reliability and robustness requirements, they
are also constrained by the security context they run in. The security issue
you are now dealing with is IMO only the begin of a painful experience, the
architecture is not based on reliability design.

Willy.
 
P

pbd22

Thanks again Willy.

Some questions I "can" answer immediately -
What kind of STA/MTA problems are you expecting to solve, that could not be
solved in the service?

The VB6 is STA the service, as you point out is MTA. I tried
designating main as STAThread
and doing other MTA -> STA tricks but the DLL continued to fail. The
only way we could get
the dog to hunt was by calling an external program within the service.
VB6 project right, but is the exe a windows program or an ActiveX exe (
out-proc COM server)?

A windows program.
This is how the program is is getting started, which is not what I mean with
"getting called". So I guess it's a simple standalone exe, which does not
expose methods that you can call from a client.

In this case, yes. It is just a simple program. It uses methods I have
access to by way
of the same DLLs.

This is the confusing part, are you calling methods on this exe from your
service code?

I am not calling any methods on the exe in this instance. The exe is a
stand-alone
program that the service simply starts and watches for process
completion.
As I said before, my guess is that this exe is stand-alone, in the sense
that it's getting *started* from within your service, but it's functionality
is never called in terms of method calls from external clients (your
service).

That is correct.
To resume, as far as I can see, this is what you have:
A Windows Service (C#) that calls into native COM (VB6 dll's),
yes.

The service starts an ( VB6 ) exe (conditional), that on it's turn calls the
same COM objects as above.
yes.

The service runs as LocalSystem, the VB6 exe runs in the same security
context as the service, that is it runs as a background program in the
LocalSystem account.
yes.

There is no single component that explicitly interacts with the users
desktop.

Well, the DLLs provide methods that interact with the users desktop
but
the C# program is the one calling the methods and writing to the files
so,
I guess the answer that question is "correct".
One components has a security issue when accessing a (disk) resource, and
logs this fact to the eventlog.

yes.

Also, as a final note, I have been trying to register my DLLs on the
server with
regsvr32 and I keep getting failure due to "Entry Point Not Found".
Can you tell
me why I am getting this?

Thanks again for all your help.
 
B

Ben Voigt [C++ MVP]

Here is the important thing that I suspect still hasn't been done:
COM servers (DLL's and EXE's) need to be registered on the target system,
by running regsvr32 <mynativecom.dll> in case of a DLL, or running the
server

Having the DLL in the path or exe directory is NOT sufficient for COM to
work.
 
W

Willy Denoyette [MVP]

pbd22 said:
Thanks again Willy.

Some questions I "can" answer immediately -


The VB6 is STA the service, as you point out is MTA. I tried
designating main as STAThread

You can't set the main thread to STA in a service, you need to create a
thread and initialize the thread to enter an STA before starting. You need
to create a thread that runs your service anyway (I hope this is done in
InitIndexer() !!!!)

and doing other MTA -> STA tricks but the DLL continued to fail. The
only way we could get
the dog to hunt was by calling an external program within the service.


A windows program.

EEK, do you mean a program that displays a form?
In this case, yes. It is just a simple program. It uses methods I have
access to by way
of the same DLLs.



I am not calling any methods on the exe in this instance. The exe is a
stand-alone
program that the service simply starts and watches for process
completion.


That is correct.



Well, the DLLs provide methods that interact with the users desktop
but
the C# program is the one calling the methods and writing to the files
so,
I guess the answer that question is "correct".

Do you mean that the VB6 COM DLL's interact with the desktop, is the service
enabled to "interact with the desktop"? That would be really bad, these
DLL's run in the context of a Windows Service, and as such they should NOT
interact with the ineractive desktop, Services should never assume such
interactive desktop to be present. Note that this is no longer possible on
Vista.
Another point is that the VB6 program (the EXE) also runs in the security
context of a service, that means it has no access to the interactive desktop
either, so what are you expecting from a Windows program (the VB6 EXE) that
calls into UI like COM components that has no access to the visible desktop
..

Question remains which component, "WindowsXYZServer.GetSpace() Access is
denied." should give you a clue isn't it?

Also, as a final note, I have been trying to register my DLLs on the
server with
regsvr32 and I keep getting failure due to "Entry Point Not Found".
Can you tell
me why I am getting this?

That means that the DLL's you are registering are NO COM DLL's, are you sure
you register the VB6 DLL's? Don't register the interop assemblies!!


Willy.
 
P

pbd22

OK,

I now have access to the original projects for the DLLs.
It turns out the DLLs are all written in Visual C++. The
exe program i call in my project is VB6 (which calls these
DLLs).
 
P

pbd22

OK,

I now have access to the original projects for the DLLs.
It turns out the DLLs are all written in Visual C++. The
exe program i call in my project is VB6 (which calls these
DLLs).

Ben (and Willy):

OK, I just want to check,

I have the following folder path now:

/main

Interop.A.dll
Interop.B.dll
Interop.C.dll
windowsservice.exe

/bin
parser.exe

/lib
A.dll
B.dll
C.dll

I registered the DLLs in the /lib directory
and I simply included the Interop DLLs in the /Main
folder with the windowsservice.exe. Should I be
registering the Interop DLLs?

the VB6 program called inside my project is in
/bin.

Thanks,
Peter
 
P

pbd22

OK... thanks guys.

I moved the COM DLLs to a new folder (thanks Ben) and the
Security problem went away. Not sure what exactly happened
but, hey, if it ain't broke...

I am getting one last log error:

Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 1/8/2008
Time: 3:39:53 PM
User: N/A
Computer: 2003 Server
Description:
EventType clr20r3, P1 indexservice.exe, P2 1.0.0.0, P3 47827ce5, P4
indexservice, P5 1.0.0.0, P6 47827ce5, P7 b, P8 b3, P9
pszqoadhx1u5zahbhohghldgiy4qixhx, P10 NIL.

For more information, see Help and Support Center at
http://go.microsoft.com/fwlink/events.asp.
Data:
0000: 63 00 6c 00 72 00 32 00 c.l.r.2.
0008: 30 00 72 00 33 00 2c 00 0.r.3.,.
0010: 20 00 76 00 62 00 69 00 .v.b.i.
0018: 6e 00 64 00 65 00 78 00 n.d.e.x.
0020: 65 00 72 00 73 00 65 00 e.r.s.e.
0028: 72 00 76 00 69 00 63 00 r.v.i.c.
0030: 65 00 2e 00 65 00 78 00 e...e.x.
0038: 65 00 2c 00 20 00 31 00 e.,. .1.
0040: 2e 00 30 00 2e 00 30 00 ..0...0.
0048: 2e 00 30 00 2c 00 20 00 ..0.,. .
0050: 34 00 37 00 38 00 32 00 4.7.8.2.
0058: 37 00 63 00 65 00 35 00 7.c.e.5.
0060: 2c 00 20 00 76 00 62 00 ,. .v.b.
0068: 69 00 6e 00 64 00 65 00 i.n.d.e.
0070: 78 00 65 00 72 00 73 00 x.e.r.s.
0078: 65 00 72 00 76 00 69 00 e.r.v.i.
0080: 63 00 65 00 2c 00 20 00 c.e.,. .
0088: 31 00 2e 00 30 00 2e 00 1...0...
0090: 30 00 2e 00 30 00 2c 00 0...0.,.
0098: 20 00 34 00 37 00 38 00 .4.7.8.
00a0: 32 00 37 00 63 00 65 00 2.7.c.e.
00a8: 35 00 2c 00 20 00 62 00 5.,. .b.
00b0: 2c 00 20 00 62 00 33 00 ,. .b.3.
00b8: 2c 00 20 00 70 00 73 00 ,. .p.s.
00c0: 7a 00 71 00 6f 00 61 00 z.q.o.a.
00c8: 64 00 68 00 78 00 31 00 d.h.x.1.
00d0: 75 00 35 00 7a 00 61 00 u.5.z.a.
00d8: 68 00 62 00 68 00 6f 00 h.b.h.o.
00e0: 68 00 67 00 68 00 6c 00 h.g.h.l.
00e8: 64 00 67 00 69 00 79 00 d.g.i.y.
00f0: 34 00 71 00 69 00 78 00 4.q.i.x.
00f8: 68 00 78 00 20 00 4e 00 h.x. .N.
0100: 49 00 4c 00 0d 00 0a 00 I.L.....
 
P

pbd22

using Debugging Tools for Win.
dump from tlist.exe for my running service:

3756 MyWindowsService.exe
CWD: C:\WINDOWS\system32\
CmdLine: "C:\Program Files\MyCompany\OurProduct\Common
\MyWindowsService\MyWindowsService.exe"
VirtualSize: 108144 KB PeakVirtualSize: 110192 KB
WorkingSetSize: 11136 KB PeakWorkingSetSize: 11144 KB
NumberOfThreads: 8
696 Win32StartAddr:0x79004010 LastErr:0x00000000 State:Waiting
1992 Win32StartAddr:0x79f0cdf0 LastErr:0x00000000 State:Waiting
3680 Win32StartAddr:0x79ed8df0 LastErr:0x00000000 State:Waiting
3888 Win32StartAddr:0x79ed8df0 LastErr:0x00000012 State:Waiting
3508 Win32StartAddr:0x79f669c2 LastErr:0x00000000 State:Waiting
3096 Win32StartAddr:0x79f56c12 LastErr:0x00000000 State:Waiting
1356 Win32StartAddr:0x77c7b0f5 LastErr:0x00000000 State:Waiting
3500 Win32StartAddr:0x776b16e4 LastErr:0x00000000 State:Waiting
1.0.0.0 shp 0x00400000 C:\Program Files\MyCompany\OurProduct
\Common\MyWindowsService\MyWindowsService.exe
5.2.3790.3959 shp 0x7C800000 C:\WINDOWS\system32\ntdll.dll
2.0.50727.832 shp 0x79000000 C:\WINDOWS\system32\mscoree.dll
5.2.3790.4062 shp 0x77E40000 C:\WINDOWS\system32\KERNEL32.dll
5.2.3790.3959 shp 0x77F50000 C:\WINDOWS\system32\ADVAPI32.dll
5.2.3790.4115 shp 0x77C50000 C:\WINDOWS\system32\RPCRT4.dll
5.2.3790.3959 shp 0x76F50000 C:\WINDOWS\system32\Secur32.dll
6.0.3790.3959 shp 0x77DA0000 C:\WINDOWS\system32\SHLWAPI.dll
5.2.3790.4033 shp 0x77C00000 C:\WINDOWS\system32\GDI32.dll
5.2.3790.4033 shp 0x77380000 C:\WINDOWS\system32\USER32.dll
7.0.3790.3959 shp 0x77BA0000 C:\WINDOWS\system32\msvcrt.dll
5.2.3790.3959 shp 0x76290000 C:\WINDOWS\system32\IMM32.DLL
2.0.50727.832 shp 0x79E70000 C:\WINDOWS\Microsoft.NET\Framework
\v2.0.50727\mscorwks.dll
8.0.50727.762 shp 0x78130000 C:\WINDOWS\WinSxS
\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-
ww_6B128700\MSVCR80.dll
6.0.3790.4184 shp 0x7C8D0000 C:\WINDOWS\system32\shell32.dll
6.0.3790.3959 shp 0x77420000 C:\WINDOWS\WinSxS
\x86_Microsoft.Windows.Common-
Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55\comctl32.dll
2.0.50727.832 shp 0x790C0000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\mscorlib\3b740e4b052b96d82f4620aaf61a382b
\mscorlib.ni.dll
5.2.3790.3959 shp 0x77670000 C:\WINDOWS\system32\ole32.dll
2.0.50727.42 shp 0x67A20000 C:\WINDOWS\assembly\GAC_MSIL
\System.ServiceProcess\2.0.0.0__b03f5f7f11d50a3a
\System.ServiceProcess.dll
2.0.50727.832 shp 0x7A440000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\System
\1baaadbdde4f0dd4721ab9dc92d54ed6\System.ni.dll
2.0.50727.832 shp 0x79060000 C:\WINDOWS\Microsoft.NET\Framework
\v2.0.50727\mscorjit.dll
2.0.50727.832 shp 0x637A0000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\System.Xml
\b66dbe55bb853af7ddcce37af39b96e4\System.Xml.ni.dll
1.0.0.0 shp 0x00DE0000 C:\Program Files\MyCompany\OurProduct
\Common\MyWindowsService\Interop.VBWMParserLib.dll
8.0.50727.42 shp 0x5E410000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\Microsoft.VisualBas#
\1c64335e49ea77d310aa32519a45f17f\Microsoft.VisualBasic.ni.dll
2001.12.4720.3959 0x777B0000 C:\WINDOWS\system32\CLBCatQ.DLL
5.2.3790.4098 shp 0x77D00000 C:\WINDOWS\system32\OLEAUT32.dll
2001.12.4720.3959 0x77010000 C:\WINDOWS\system32\COMRes.dll
5.2.3790.3959 shp 0x77B90000 C:\WINDOWS\system32\VERSION.dll
5.2.3790.3959 shp 0x030D0000 C:\WINDOWS\system32\xpsp2res.dll
1.0.0.2 shp 0x10000000 C:\Program Files\MyCompany\OurProduct
\Common\MyWindowsService\lib\VBWMParser.dll
10.0.0.3997 shp 0x4EA20000 C:\WINDOWS\system32\WMVCore.DLL
10.0.0.4000 shp 0x58DD0000 C:\WINDOWS\system32\WMASF.DLL
5.2.3790.3959 shp 0x75DA0000 C:\WINDOWS\system32\SXS.DLL
6.0.3790.3959 shp 0x74540000 C:\WINDOWS\system32\mlang.dll
5.2.3790.3959 shp 0x76AA0000 C:\WINDOWS\system32\WINMM.dll
 
W

Willy Denoyette [MVP]

pbd22 said:
OK... thanks guys.

I moved the COM DLLs to a new folder (thanks Ben) and the
Security problem went away. Not sure what exactly happened
but, hey, if it ain't broke...

And did you un-registered the DLL's before moving, and re-registered after
moving? Guess not, that why you ain't have the security ssue, you aren't
getting at that point because the COM call succeeds.
You really seem like "shooting in the dark", you will shoot yourself I'm
affraid.


I am getting one last log error:

Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 5000
Date: 1/8/2008
Time: 3:39:53 PM
User: N/A
Computer: 2003 Server
Description:
EventType clr20r3, P1 indexservice.exe, P2 1.0.0.0, P3 47827ce5, P4
indexservice, P5 1.0.0.0, P6 47827ce5, P7 b, P8 b3, P9
pszqoadhx1u5zahbhohghldgiy4qixhx, P10 NIL.

This is logged automatically by the CLR because he encountered a "serious
runtime failure" in the indexservice.exe.

Willy.
 
W

Willy Denoyette [MVP]

pbd22 said:
using Debugging Tools for Win.
dump from tlist.exe for my running service:

3756 MyWindowsService.exe
CWD: C:\WINDOWS\system32\
CmdLine: "C:\Program Files\MyCompany\OurProduct\Common
\MyWindowsService\MyWindowsService.exe"
VirtualSize: 108144 KB PeakVirtualSize: 110192 KB
WorkingSetSize: 11136 KB PeakWorkingSetSize: 11144 KB
NumberOfThreads: 8
696 Win32StartAddr:0x79004010 LastErr:0x00000000 State:Waiting
1992 Win32StartAddr:0x79f0cdf0 LastErr:0x00000000 State:Waiting
3680 Win32StartAddr:0x79ed8df0 LastErr:0x00000000 State:Waiting
3888 Win32StartAddr:0x79ed8df0 LastErr:0x00000012 State:Waiting
3508 Win32StartAddr:0x79f669c2 LastErr:0x00000000 State:Waiting
3096 Win32StartAddr:0x79f56c12 LastErr:0x00000000 State:Waiting
1356 Win32StartAddr:0x77c7b0f5 LastErr:0x00000000 State:Waiting
3500 Win32StartAddr:0x776b16e4 LastErr:0x00000000 State:Waiting
1.0.0.0 shp 0x00400000 C:\Program Files\MyCompany\OurProduct
\Common\MyWindowsService\MyWindowsService.exe
5.2.3790.3959 shp 0x7C800000 C:\WINDOWS\system32\ntdll.dll
2.0.50727.832 shp 0x79000000 C:\WINDOWS\system32\mscoree.dll
5.2.3790.4062 shp 0x77E40000 C:\WINDOWS\system32\KERNEL32.dll
5.2.3790.3959 shp 0x77F50000 C:\WINDOWS\system32\ADVAPI32.dll
5.2.3790.4115 shp 0x77C50000 C:\WINDOWS\system32\RPCRT4.dll
5.2.3790.3959 shp 0x76F50000 C:\WINDOWS\system32\Secur32.dll
6.0.3790.3959 shp 0x77DA0000 C:\WINDOWS\system32\SHLWAPI.dll
5.2.3790.4033 shp 0x77C00000 C:\WINDOWS\system32\GDI32.dll
5.2.3790.4033 shp 0x77380000 C:\WINDOWS\system32\USER32.dll
7.0.3790.3959 shp 0x77BA0000 C:\WINDOWS\system32\msvcrt.dll
5.2.3790.3959 shp 0x76290000 C:\WINDOWS\system32\IMM32.DLL
2.0.50727.832 shp 0x79E70000 C:\WINDOWS\Microsoft.NET\Framework
\v2.0.50727\mscorwks.dll
8.0.50727.762 shp 0x78130000 C:\WINDOWS\WinSxS
\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-
ww_6B128700\MSVCR80.dll
6.0.3790.4184 shp 0x7C8D0000 C:\WINDOWS\system32\shell32.dll
6.0.3790.3959 shp 0x77420000 C:\WINDOWS\WinSxS
\x86_Microsoft.Windows.Common-
Controls_6595b64144ccf1df_6.0.3790.3959_x-ww_D8713E55\comctl32.dll
2.0.50727.832 shp 0x790C0000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\mscorlib\3b740e4b052b96d82f4620aaf61a382b
\mscorlib.ni.dll
5.2.3790.3959 shp 0x77670000 C:\WINDOWS\system32\ole32.dll
2.0.50727.42 shp 0x67A20000 C:\WINDOWS\assembly\GAC_MSIL
\System.ServiceProcess\2.0.0.0__b03f5f7f11d50a3a
\System.ServiceProcess.dll
2.0.50727.832 shp 0x7A440000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\System
\1baaadbdde4f0dd4721ab9dc92d54ed6\System.ni.dll
2.0.50727.832 shp 0x79060000 C:\WINDOWS\Microsoft.NET\Framework
\v2.0.50727\mscorjit.dll
2.0.50727.832 shp 0x637A0000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\System.Xml
\b66dbe55bb853af7ddcce37af39b96e4\System.Xml.ni.dll
1.0.0.0 shp 0x00DE0000 C:\Program Files\MyCompany\OurProduct
\Common\MyWindowsService\Interop.VBWMParserLib.dll
8.0.50727.42 shp 0x5E410000 C:\WINDOWS\assembly
\NativeImages_v2.0.50727_32\Microsoft.VisualBas#
\1c64335e49ea77d310aa32519a45f17f\Microsoft.VisualBasic.ni.dll
2001.12.4720.3959 0x777B0000 C:\WINDOWS\system32\CLBCatQ.DLL
5.2.3790.4098 shp 0x77D00000 C:\WINDOWS\system32\OLEAUT32.dll
2001.12.4720.3959 0x77010000 C:\WINDOWS\system32\COMRes.dll
5.2.3790.3959 shp 0x77B90000 C:\WINDOWS\system32\VERSION.dll
5.2.3790.3959 shp 0x030D0000 C:\WINDOWS\system32\xpsp2res.dll
1.0.0.2 shp 0x10000000 C:\Program Files\MyCompany\OurProduct
\Common\MyWindowsService\lib\VBWMParser.dll
10.0.0.3997 shp 0x4EA20000 C:\WINDOWS\system32\WMVCore.DLL
10.0.0.4000 shp 0x58DD0000 C:\WINDOWS\system32\WMASF.DLL
5.2.3790.3959 shp 0x75DA0000 C:\WINDOWS\system32\SXS.DLL
6.0.3790.3959 shp 0x74540000 C:\WINDOWS\system32\mlang.dll
5.2.3790.3959 shp 0x76AA0000 C:\WINDOWS\system32\WINMM.dll



Could you please tell us what you are trying to tell us with all this?

Willy.
 
P

pbd22

Sorry. I think its late and I am grabbing.
Most would have given up on me by now - thanks for hanging in there.

I want to answer your original question - where is the error coming
from???

I have finally found the .cs file that is responsible for the method:


/// <summary>
/// Get free disk space information for the specified drive on
the server
/// </summary>
/// <param name="xDrive">Drive letter</param>
/// <returns>Free disk space in GB. It returns float.MaxValue
if it fails to get the info from the server for any reason</returns>
override public float GetDiskSpace(char xDrive)
{
return HelperClass.GetDiskSpace(Capabilities, Address,
Name, Password, xDrive);
}

I am not sure, though, where to go from here.

Thanks again.
 
F

Family Tree Mike

Many posts ago you wrote:

WindowsXYZServer.GetSpace() Access is denied. (Exception from HRESULT:
0x80070005 (E_ACCESSDENIED))

and now,

override public float GetDiskSpace(char xDrive)
{
return HelperClass.GetDiskSpace(Capabilities, Address,Name, Password,
xDrive);
}


So the presumption is that the username (a guess at what "Name" is) and
Password do not allow permission to the drive being refered to in the call,
if they are even valid for the new computer. It should be straightforward to
find all the values and verify them.
 
W

Willy Denoyette [MVP]

pbd22 said:
Sorry. I think its late and I am grabbing.
Most would have given up on me by now - thanks for hanging in there.

I want to answer your original question - where is the error coming
from???

I have finally found the .cs file that is responsible for the method:


/// <summary>
/// Get free disk space information for the specified drive on
the server
/// </summary>
/// <param name="xDrive">Drive letter</param>
/// <returns>Free disk space in GB. It returns float.MaxValue
if it fails to get the info from the server for any reason</returns>
override public float GetDiskSpace(char xDrive)
{
return HelperClass.GetDiskSpace(Capabilities, Address,
Name, Password, xDrive);
}

I am not sure, though, where to go from here.

Thanks again.



Search for the HelperClass and inspect the GetDiskSpace method, this is the
one that probably logs the error message(if it doesn't call another method).
You should also look at the Name and Password arguments, where do they come
from what do they hold and what are they used for.
If they are used to impersonate a user, then you should check whether there
exists a user with these credentials.

Willy.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top