I'm experiencing a very strange error that I can't manage to fix and need some help from anyone with suggestions please.

I have a PictureBox on my main form. When a user clicks an entry on a listbox is loads an image from a webserver into the picturebox.

To ensure you understand the way it all works:

Server:
Linux SuSe Server, running Apache Webserver and MySQL Database.
Images are saved to server via a network share. Only a few select computers can access this share, this is by design. The images are saved to a directory which is listed by Apache. I.e. If you browse to the server using internet explorer or firefox you can access the images.

Users:
Most users are in the same building accessing the server over a 10/100 lan. There are a few users who access it via internet.


Problem:
Users on the network have an issue where it cannot load the image into the picturebox. I get the wonderfully helpful error of "Parameter not valid". This error only appears sometimes. On starting the program it's almost always every second time. But even if it works initially, if the program is left running for a few minutes it then starts doing this as well.

My original code was:

Code:
public void ShowLeadImage(System.Windows.Forms.PictureBox picBox, string ImageDir)
		{
			//display image for lead
			long batchID = ReturnScanBatchID(ImageDir);
			
			string imageLocation = globals.Instance.serverImageDir + batchID.ToString() + "/";
			imageLocation += ImageDir + ".jpg";
			
			try
			{
				picBox.Load(imageLocation);
			}
			catch (Exception ex)
			{
				ErrorLog(2, "Error Loading Image [" + imageLocation + "]", ex.Message);
			}
			
		}

I have tried changing it to this incase it was the way that the picturebox was trying to load an image:

Code:
public void ShowLeadImage(System.Windows.Forms.PictureBox picBox, string ImageDir)
		{
			//display image for lead
			long batchID = ReturnScanBatchID(ImageDir);
			
			string imageLocation = globals.Instance.serverImageDir + batchID.ToString() + "/";
			imageLocation += ImageDir + ".jpg";
			try
			{
				Stream ImageStream = new WebClient().OpenRead(imageLocation);
				Image img = Image.FromStream(ImageStream);
				img.Save(@"C:\temp.jpg");

				picBox.Load(@"C:\temp.jpg");
			}
			catch (Exception ex)
			{
				globals.Instance.ErrorLog(2, "Error Loading Image [" + imageLocation + "]", ex.Message);
			}
			
		}

I tried pulling the image directly into the picturebox from the stream. Same error. Tried saving it to the c drive first and then loading it and the error still occurs (error occurs before it manages to save it to harddrive).

The images are all valid. They are not corrupt. The fact that it sometimes works and sometimes doesn't baffles me. If I open up IE on the pc and put the path in, it loads the image fine. I can refresh to my hearts content and the image is fine.

All users running the program via internet are working fine. It never does this for them.

My current suspicion is that there could be an issue with apache on the linux server but there are no logs on the server to indicate anything suspicious.

Does anyone have any suggestions as to what could be wrong, or how else I could diagnose the problem?