| 

.NET C# Java Javascript Exception

2
Hallo,
ich stehe denke ich vor einem bekanntem Problem, finde aber einfach keine Lösung. Ich starte von meiner Anwendung aus einen Filestream zum Lesen (zippe eine Textdatei) und dannach einen Filestream zum Speichern. Egal ob ich die Anwendung als Admin ausführe oder nicht, ich bekomme die Exceptions System.Security.SecurityException, System.UnauthorizedAccessException. Mit Manifests habe ich auch schon rum getan. Aber irgendwie habe ich keine Lösung gefunden die Hand un Fuß hat.

codestelle jetzt erweitert:):

mFileToUpload = "C:\Ordner\Ordner\test.txt"

Private Sub PrepareUpload(ByVal ProcessorID As String, ByVal User As String)

Dim CopyPath As String = GenerateFilename(ProcessorID, User)
IO.File.Copy(mFileToUpload, CopyPath, True)
Dim readstream As New System.IO.FileStream(CopyPath, IO.FileMode.Open, FileAccess.Read)

Dim ByteArray(CInt(readstream.Length)) As Byte
readstream.Read(ByteArray, 0, ByteArray.Length)
readstream.Close()
Dim outFileStream As New System.IO.FileStream(CopyPath & ".zip", IO.FileMode.Create, FileAccess.Write)

Dim gZip As New IO.Compression.GZipStream(outFileStream, IO.Compression.CompressionMode.Compress)
gZip.Write(ByteArray, 0, ByteArray.Length)
gZip.Close()
outFileStream.Close()

IO.File.Delete(CopyPath)
mFileToUpload = CopyPath & ".zip"

End Sub


Hoffe mir kann einer helfen.

Gruß

Spicejam
20.06.2011
spicejam 853 2 6
codestelle?
nabuchodonossor 20.06.2011
eigentlich meinte ich sowohl lesen als auch schreiben als codenschnipsel. dann könnte ich (oder auch jeder andere) das stück ausprobieren ohne zu raten.
nabuchodonossor 21.06.2011
so eriweterte codestelle, siehe oben.
spicejam 21.06.2011
2 Antworten
2
Hi,

das ist ein Problem mit den Sicherheitsrichtlinien in .NET, wenn dein CopyPath nicht auf C:\ verweist sondern beispielsweise auf ein Netzlaufwerk.

Es gibt ein Programm (caspol.exe) im Verzeichnis des 2.0 Frameworks mit dem man diese Einstellungen anpassen kann.
http://msdn.microsoft.com/en-us/library/cb6t8dtz(v=vs.80).aspx

Am einfachsten ist es einfach alles zu erlauben. Das würde ich dir aber nicht unbedingt empfehlen:
CasPol.exe -machine -chggroup All_Code FullTrust

Gruß

JenneB
21.06.2011
JenneB 206 4
Hey das schaut doch schonmal gut aus, ich schaus mir gleich mal an. ich hab das ganze via vb.net versuch einszustellen hat aber nicht so wirklich funktioniert. das sieht aber sehr gut aus! danke
spicejam 21.06.2011
Das via vb.net einzustellen ist glaub ich nicht ganz einfach. Sonst hätte Microsoft sich nicht die Arbeit mit den Einstellungen machen brauchen, wenn die auf dem möglicherweise schadhaften Programm direkt wieder deaktiviert werden könnten.
JenneB 21.06.2011
0
Benutzt du WPF,Silverlight, Konsole oder WinForms?
Und welche .NET-Version?
20.06.2011
HischLock 73 1 5
winforms, .net 2.0
spicejam 20.06.2011
@HischLock: Das nächste mal, Fragen bitte als Kommentar abgeben. Danke :-)
Konstantin 20.06.2011
folgendes Programm funktioniert bei mir.


Imports System.IO

Public Class Form1
Dim readstream As FileStream


Public Sub New()

' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
InitializeComponent()
readstream = New System.IO.FileStream("C:\Temp\test.xml", IO.FileMode.Open, FileAccess.Read)
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.

End Sub
End Class

HischLock 20.06.2011

Stelle deine .net-Frage jetzt!