Avatar billede jackass- Nybegynder
15. marts 2010 - 10:20 Der er 2 kommentarer og
1 løsning

Program hænger/crasher .. ressoucer

Hej,

Jeg har lidt problemer med, at mit program hænger/crasher sådan hver eller hver anden dag. Samtidig kommer der en fejl "kunne ikke blabla pga manglende ressourcer".

Jeg har kørt en code analysis, som sagde jeg manglede en .Dispose(); hist og her.. bl.a. på et StreamWriter og SqlConnection objekt.. så det kunne jo godt være det.

Men jeg får også en del af fejl som disse i code analysis.. Har det nogen betydning i dette tilfælde, eller er det bare "larm"?


CA2122 : Microsoft.Security : 'MyApp.DoCopyFiles()' calls into 'Process.Start(ProcessStartInfo)' which has a LinkDemand. By making this call, 'Process.Start(ProcessStartInfo)' is indirectly exposed to user code. Review the following call stack that might expose a way to circumvent security protection:
  ->'MyApp.DoCopyFiles()'
  ->'MyApp.DoCopyFiles()'

CA2122 : Microsoft.Security : 'MyApp.DoCopyFiles()' calls into 'Process.WaitForExit()' which has a LinkDemand. By making this call, 'Process.WaitForExit()' is indirectly exposed to user code. Review the following call stack that might expose a way to circumvent security protection:
  ->'MyApp.DoCopyFiles()'
  ->'MyApp.DoCopyFiles()'

CA2122 : Microsoft.Security : 'MyApp.DoCopyFiles()' calls into 'ProcessStartInfo.Arguments.set(string)' which has a LinkDemand. By making this call, 'ProcessStartInfo.Arguments.set(string)' is indirectly exposed to user code. Review the following call stack that might expose a way to circumvent security protection:
  ->'MyApp.DoCopyFiles()'
  ->'MyApp.DoCopyFiles()'

CA2122 : Microsoft.Security : 'MyApp.DoCopyFiles()' calls into 'ProcessStartInfo.CreateNoWindow.set(bool)' which has a LinkDemand. By making this call, 'ProcessStartInfo.CreateNoWindow.set(bool)' is indirectly exposed to user code. Review the following call stack that might expose a way to circumvent security protection:
  ->'MyApp.DoCopyFiles()'
  ->'MyApp.DoCopyFiles()'

CA2122 : Microsoft.Security : 'MyApp.IsProcessOpen(string)' calls into 'Process.GetProcesses()' which has a LinkDemand. By making this call, 'Process.GetProcesses()' is indirectly exposed to user code. Review the following call stack that might expose a way to circumvent security protection:
  ->'MyApp.IsProcessOpen(string)'
  ->'MyApp.IsProcessOpen(string)'
Avatar billede bvli Praktikant
15. marts 2010 - 11:22 #1
Den prøver at fortælle dig, at du bruger en metode som man kun kan bruge når man har full trust - og at programmer som kalder din kode på den måde kan gøre brug af kode den ikke skulle have lov til.

Hvis du har tænkt lidt over hvordan du bruger den, og sikret at det ikke kan misbruges så er det nok ok.

Men jeg undrer mig over, hvad du mon bruger en Process.Start til i en metode der hedder DoCopyFiles()..
Avatar billede jackass- Nybegynder
15. marts 2010 - 13:13 #2
Hehe det er der såmænd ikke det store hemmelighedskræmmeri i. DoCopyFiles() læser en config fil hvor der er defineret en række tasks, bl.a. kopiering af shortcuts, forskellige dokumenter m.v. og looper gennem disse og gør eksempelvis:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.FileName = "robocopy";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "\"" + TaskParameters[1] + "\" \"" + TaskParameters[2] + "\" /MIR";

try
{
    using (Process exeProcess = Process.Start(startInfo))
    {
        exeProcess.WaitForExit();
    }
}
catch (Exception ex)
{
    LogMessageToFile("Error: " + ex.Message);
}
Avatar billede jackass- Nybegynder
14. april 2010 - 10:46 #3
lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester