Autor Beitrag
mbraun
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 30.05.07 13:24 
Hallo,

ich kämpfe grade mit einem Problem und weiß nicht wirklich eine Lösung. Ich habe eine Anwendung entwickelt, die auch wunderbar funktioniert. Nun wollte ich das Programm testweise mal auf unseren Fileserver kopieren, damit andere auf die Quelltexte Zugriff haben. Aber aus irgendeinem Grund kann ich das Programm an dieser Stelle nicht ausführen. Das Programm bekommt immer an der Stelle eine Exceltion, wenn ich den ausgewählten Pfad einlesen will:

ausblenden C#-Quelltext
1:
workingDirPath.Text = selFolderDlg.SelectedPath.ToString();					


Und da bekomm ich folgende Exception:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
System.Security.SecurityException: Request for the permission of type 'System.Security.Permissions.FileIOPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.
   at System.Security.CodeAccessSecurityEngine.Check(Object demand, StackCrawlMark& stackMark, Boolean isPermSet)
   at System.Security.CodeAccessPermission.Demand()
   at System.IO.DirectoryInfo..ctor(String path)
   at GUI.Start.workingDir(Boolean showDlg)
   at GUI.Start.btn_Start_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
   at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   at User.Sys.start_new_form()
   at User.Sys.Main()
The action that failed was:
Demand
The type of the first permission that failed was:
System.Security.Permissions.FileIOPermission
The Zone of the assembly that failed was:
Intranet


Kann mir jemand sagen, woran das liegen kann?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 30.05.07 14:45 
Ich denke, dass das einfach nur heisst, dass Du an der Stelle nicht die benötigten Rechte hast.

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
mbraun Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 30.05.07 14:52 
Keine Rechte, um was zu machen? Abzufragen, auf welchen Pfad der Folder Browser zeigt? Und wieso sollte es von dem lokalen Rechner aus funktionieren?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 30.05.07 15:21 
Wenn man sich die Exception mal genauer ansieht, erkennt man in Zeile 4, dass da Informationen via DirectoryInfo abgefragt werden sollen. Ich denke, dort wird es krachen.

Und die letzten beiden Zeilen heißen wohl, dass das Programm in der Sicherheitszone "Intranet" ausgeführt wird. Auf Deinem lokalen System wird es wohl eine andere Sicherheitszone sein, weshalb es dort funktioniert.

Mehr kann man aus einer einzigen Zeile Code halt nicht orakeln, da musst Du dann schon mehr INformationen geben :nixweiss:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
mbraun Threadstarter
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 30.05.07 15:30 
Sorry, das mit der Directory Info habe ich nicht gesehen. Es kracht also eine Zeile tiefer:

ausblenden C#-Quelltext
1:
2:
3:
4:
            DirectoryInfo dir = new DirectoryInfo(@workingDirPath.Text);
            FileInfo[] csvfiles = dir.GetFiles("*.csv");
            FileInfo[] rulesfiles = dir.GetFiles("*.rules");
            FileInfo[] imgfiles = dir.GetFiles("*.tif");


Aber wieso kann ich keine DirectoryInfo abfragen, wenn das Programm aus dem Intranet ausgeführt wird? Oder habe ich noch eine anderen Möglichkeit eine Auflistung aller z.B. *.csv zu bekommen?