Laden...

Zugriff auf Network Share mit ASP.Net

Erstellt von Geraldo23 vor 19 Jahren Letzter Beitrag vor 19 Jahren 3.090 Views
G
Geraldo23 Themenstarter:in
19 Beiträge seit 2004
vor 19 Jahren
Zugriff auf Network Share mit ASP.Net

Hallo!
Ich möchte die Dateien in einem Network Share auslesen, bekomme jedoch eine Fehlermeldung.
Hier ist der Code den ich verwende:


string strDirectory = @"\\test-server\Share";
DirectoryInfo di = new DirectoryInfo(strDirectory);		
FileInfo[] rgFiles = di.GetFiles();

Ich bekomme jedoch die folgene Fehlermeldung:
System.UnauthorizedAccessException: Der Zugriff auf den Pfad \test-server\Share wurde verweigert

Es hat aber jeder Zugriff auf dieses Share, und wenn ich das selbe in Bisual Basic.Net schreibe funktionierts, was kann da sein?

Danke für eure Hilfe

Gerald

165 Beiträge seit 2004
vor 19 Jahren

Nur eine Vermutung von mir: Code Access Security !?

G
Geraldo23 Themenstarter:in
19 Beiträge seit 2004
vor 19 Jahren

Was meinst du da genau damit?

G
Geraldo23 Themenstarter:in
19 Beiträge seit 2004
vor 19 Jahren

Habe das Problem gelöst, jedoch taucht jetzt ein weiteres Problem auf.

Und zwar will ich von Office Dokumenten die Custom Properties auslesen und im Browser darstellen. Dazu verwende ich die dsofile.dll.
So weit, so gut. Es ist kein Problem die Properties von Dateien welche sich auf meinem Rechner befinden anzuzeigen, will ich jedoch die Props von Dateien,welche sich auf einem Network Share befinden anzeigen, bekomme ich eine Fehlermeldung. Ich bekomme zwar eine Liste mit allen Dateien im Network Share,jedoch kann ich die Properties nicht auslesen.

Hier ist der Code dazu:


private void Page_Load(object sender, System.EventArgs e)
		{		
			try
			{
				string strDirectory = @"\\test-server\temp";
				DSOleFile.PropertyReader objPropReader = new DSOleFile.PropertyReaderClass();
				ArrayList arrListDocuments = new ArrayList();

				DirectoryInfo di = new DirectoryInfo(strDirectory);
								
				FileInfo[] rgFiles = di.GetFiles();
				foreach(FileInfo objFileInfo in rgFiles)
				{
					System.IO.FileAttributes objAttrFile = System.IO.File.GetAttributes(objFileInfo.FullName);

					if ((objAttrFile & (System.IO.FileAttributes.Hidden | System.IO.FileAttributes.System)) != 0)
					{
//						Response.Write(objFileInfo.Name + ": Hidden Datei<br>");
					}
					else
					{
						arrListDocuments.Add(objFileInfo.FullName);
					}			
				}
				object[] objIndex = new object[2];
				objIndex[0] = "Erste Eigenschaft";
				objIndex[1] = "Zweite Eigenschaft";

				string strFileName = "";
				string strValue = "";

				TableRow row = new TableRow();
				TableCell cellName = new TableCell();
				cellName.Text = "Document Name";
				row.Cells.Add(cellName);

				for(int y = 0; y < objIndex.Length; y++)
				{
					TableCell cellPropName = new TableCell();
					cellPropName.Text = objIndex[y].ToString();
					row.Cells.Add(cellPropName);
				}
				row.BackColor = System.Drawing.Color.LightGray;
				myTable.Rows.Add(row);

				DSOleFile.DocumentProperties objDocumentProps;

				for(int i = 0; i < arrListDocuments.Count; i++)
				{
					strFileName = arrListDocuments[i].ToString();
					objDocumentProps = objPropReader.GetDocumentProperties(strFileName);
					TableRow row1 = new TableRow();
					TableCell cell = new TableCell();
					cell.Text = arrListDocuments[i].ToString();
					row1.Cells.Add(cell);

					for(int y = 0; y < objIndex.Length; y++)
					{
						
						
						strValue = "Nicht vorhanden";
						DSOleFile.CustomProperties custProps = objDocumentProps.CustomProperties;

						strValue = objDocumentProps.CustomProperties[objIndex[y]].get_Value().ToString() + " ";
						TableCell cell2 = new TableCell();
						cell2.Text = strValue;
						row1.Cells.Add(cell2);	
						
//						Response.Write(objDocumentProps.CustomProperties[objIndex[y]].get_Value().ToString() + " ");
					}
					myTable.Rows.Add(row1);
					
				}
//				Response.Write("<br>");				
			}
			catch(Exception ex)
			{
				Response.Write(ex.ToString());
			}
		}

Beim aufruf von objPropReader.GetDocumentProperties(strFileName) bekomme ich folgende Fehlermeldung:
System.Runtime.InteropServices.COMException: Ausnahme von HRESULT: 0x80030002 (STG_E_FILENOTFOUND).

Der Pfad zur Datei stimmt aber. Woran kann das liegen?

Danke für eure Hilfe.

Gerald