VB.Net file access problem with UNC

S

Sarah

I need to access some data on a server. I can access it directly using UNC
(i.e. \\ComputerName\ShareName\Path\FileName) or using a mapped network
drive resource (S:\Path\FileName).

Here is my problem: my vb.net program has problems with UNC. If the UNC
server is restarted or goes off-line, my VB.net program crashes. The code
for UNC access to the file is included below and is put in the tick event of
a form timer control running every 10 seconds. The program does not crash
when the network server goes down using the same code below except that the
network resource is referenced using a mapped drive (i.e. S:\).

=======

Try

If File.Exists("\\Server1\Files\Data1.dbf") Then

Try
File.Copy(("\\Server1\Files\Data1.dbf",
"C:\Data\tblData.dbf", True)
Catch
'Do Nothing
End Try

End If

Catch

'msgbox error

End Try

=======

The reason I would prefer to use UNC is so that the drive does not have to
be mapped on the clients computer - and the client cannot goof around with
the server files that easily (I do not have the ability to modify
permissions in this situation at all).

Note: the program only crashes after the program has been running for a
while (i.e. after multiple ticks). So, I'm guessing that if it is in the
middle of a check and the server goes down, then it crashes. Because, if you
put an invalid UNC path and start up the program, it handles that without a
problem ( i.e. no crashes, just runs every 10 seconds).
 
N

Nick Malik [Microsoft]

what do you mean by "crashes?"
Do you get an error message?

How big are these files? Do they take more than 10 seconds to copy from one
place to another?

Are you testing this by taking down the server, or does this just happen
without intervention? If the latter, how often?

I'm wondering if you aren't attempting to execute the timed code while it is
still running from the previous tick?

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
S

Sarah

Nick Malik said:
what do you mean by "crashes?"
Do you get an error message?

No error message - VB.Net program on Windows XP crashes and reboots
immediately
How big are these files? Do they take more than 10 seconds to copy from one
place to another?

No, only a fraction of a second.

Are you testing this by taking down the server, or does this just happen
without intervention? If the latter, how often?

I've done tests by taking down the server. But, in the production
environment, this server goes through a number of reboots under normal
operations daily.
I'm wondering if you aren't attempting to execute the timed code while it is
still running from the previous tick?


I've disabled the timer during the tick - so, that is not happening.
 
N

Nick Malik [Microsoft]

First off, if you can't see the error, you can't address it.
Turn off "auto reboot on system crash" on your XP client.
http://www.theeldergeek.com/auto_reboot_on_system_crash.htm

Also, if you haven't installed XP SP2 yet, do it now. Your problem may
already have been fixed.
An error in a .net app should never crash a system. In fact, I'm not sure
your app is actually causing the system crash.

Have you checked the error log?

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
S

Sarah

Nick Malik said:
First off, if you can't see the error, you can't address it.
Turn off "auto reboot on system crash" on your XP client.
http://www.theeldergeek.com/auto_reboot_on_system_crash.htm


Ok, here is the blue screen that comes up when auto reboot on system crash
is disabled:

==========


A problem has been detected and windows has been shut down to prevent damage
to your computer.

BAD_POOL_CALLER

If this is the first time you've seen this stop error screen, restart your
computer. If this screen appears again, follow these steps:

Check to make sure any new hardware or software is properly installed. If
this is a new installation, ask your hardware or software manufacturer for
any windows updates you might need.

If problems continue, disable or remove any newly installed hardware or
software. Disable BIOS memory options such as caching or shadowing. If you
need to use safe mode to remove or disable components, restart your
computer, press F8 to select Advanced Startup Options, and then select safe
mode.

Technical Information:

*** STOP: 0x000000C2 (0x00000050, 0xE1BD5000, 0x00000BD5, 0x0A800000)

Beginning dump of physical memory
Physical memory dump complete
Contact your system administrator or technical support group for further
assistance.


==========

This is a clean system on which I've installed XP cleanly from CD-ROM 3
times - I've also tried another brand new PC - same problem. This is the
only software that is running besides the Lantastic Network software used to
connect to the DOS Lantastic server. To test, I'm pulling the network
connection out from the DOS server to take it off-line -- and, that is the
only thing I am doing. When the VB.NET program is set to get the network
file in the try block from a mapped drive to the DOS server (S:\), no crash
occurs. When I use UNC to get the file in the try block, take the DOS server
off-line, the program (system) crashes.

Also, if you haven't installed XP SP2 yet, do it now. Your problem may
already have been fixed.

Same problem on XP SP2.
An error in a .net app should never crash a system. In fact, I'm not sure
your app is actually causing the system crash.

The only thing I change is the way the path is referenced when communicating
with the DOS server. I've streamlined the code and tested a very simple
version. When my program references a UNC path, it crashes when that UNC
path is not available.

When I reference a mapped network drive (mapped to the very same UNC path),
no crash occurs - it just does its check and fails (does not do the file
copy). Then, after the fail, I have the code enable the timer again and it
checks again then as scheduled every 10 seconds. When I bring the DOS server
on-line again, it will work again and do the file copy fine.

When everything is connected, identical code runs fine in both situations
(UNC & Mapped Drive) and the remote files are copied without any issues. So,
the simple file copy code seems to work fine.

Basically, in summary:

Reference DOS Server using UNC, DOS Server on-line: file copy works
Reference DOS Server using UNC, DOS Server OFF-LINE: system crashes, blue
screen, have to restart
Reference DOS Server using mapped drive, DOS Server on-line: file copy works
Reference DOS Server using mapped drive, DOS Server OFF-LINE: program runs -
no file copy, when server back on-line again file copy works again.

Have you checked the error log?

Nothing in the Application/Security log.

System log has 2 errors that I believe are related to this problem:

=======

Event
Source: Save Dump
Event ID: 1001
Description:
The computer has rebooted from a bugcheck. The bugcheck was: 0x000000c2
(0x00000050, 0xe1bd5000, 0x00000bd5, 0x0a800000). A dump was saved in:
C:\WINDOWS\Minidump\Mini010205-01.dmp.

=======

Event
Source: System Error
Category: (102)
Event ID: 1003
Description:
Error code 000000c2, parameter1 00000050, parameter2 e1bd5000, parameter3
00000bd5, parameter4 0a800000.

=======

There are acpi errors (on every reboot) and W32Time errors (every so often,
including reboot) that are also listed in this system's error log.
 
N

Nick Malik [Microsoft]

Lantastic! Why didn't you say so?

I didn't even think that Artisoft supported Lantastic any more!

The problem is clearly the Lantastic driver.

I wonder why you use Lantastic anyway. It is simple to set up a TCP
network. The drivers are built in to Windows XP/98/NT/2000/2003 as well as
every version of Unix and Linux that I know of. The hardware is cheap and
the wiring can be done by anyone (I have a TCP network in my house).

That's the reason that the market dried up for Lantastic... Microsoft built
their functionality right into the OS, and Lantastic had no compelling
reason why someone should buy their product. They let their product go
stale and were overtaken.

I hate to say this, but you are asking a question on the wrong newsgroup.
You need to see if you can find a Lantastic driver that is compatible with
Windows XP. That's a question for Artisoft.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
S

Sarah

It is compatible with Windows XP - it says so. Artisoft sold Lantastic to
Converging Technologies. (http://www.spartacom.com/products/lantastic.htm).

The only problem is when the system is disconnected under UNC. Only when my
program is running in loop mode, does it crash. When the network is
disconnected without my program running, there are no problems. When the UNC
resource is mapped, no crashes either. So, I'm hoping there is some way to
handle the error.

This is a legacy network that I have NO control over - and, it has to use
Lantastic because of remote boot clients in DOS for POS systems.
 
N

Nick Malik [Microsoft]

The error is very likely caused by the network driver. Converging
Technologies may have a fix, especially if you send them a small app that is
able to recreate the problem, allowing them to debug the driver.

If XP is stopping, there is little or nothing that VB.Net can do about it.

If Converging Technologies cannot or will not provide a fix, you should look
at simply mapping the network drive yourself and using the mapped drive.
Apparently, the network driver doesn't collapse that way.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 
S

Sarah

Ok, thx for your help Nick!

Nick Malik said:
The error is very likely caused by the network driver. Converging
Technologies may have a fix, especially if you send them a small app that is
able to recreate the problem, allowing them to debug the driver.

If XP is stopping, there is little or nothing that VB.Net can do about it.

If Converging Technologies cannot or will not provide a fix, you should look
at simply mapping the network drive yourself and using the mapped drive.
Apparently, the network driver doesn't collapse that way.

--
--- Nick Malik [Microsoft]
MCSD, CFPS, Certified Scrummaster
http://blogs.msdn.com/nickmalik

Disclaimer: Opinions expressed in this forum are my own, and not
representative of my employer.
I do not answer questions on behalf of my employer. I'm just a
programmer helping programmers.
 

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