System.Diagnostic.Process

giovedì 08 maggio 2008 - 16.41

liveforever81 Profilo | Junior Member

Salve a tutti...
sto uscendo pazzo per questa applicazione che gira magnificamente e fa quel che deve fare su XP Professional, mentre mi si pianta su Windows Server 2003 Enterprise Edition.

Vi spiego brevemente cosa fa:
Ho un arraylist (in formato xls o txt) che viene salvato sulla cartella TEMP di Windows, viene da qui Zippato e poi la Response (è una pagina web) mostra all'utente la finestrella che chiede dove salvare l'archivio appena creato:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Su XP mi va una meraviglia...ma come provo a metterlo su WS2003EE si pianta su Proc.Start() per ore, senza dare segni di vita...

freeteo Profilo | Guru

ciao,
è sicuramente un problema di permessi, probabilmente il processo asp.net del tuo server non ha le abilitazioni per eseguire dei bat (anche perchè di default sarebbe da pazzi lasciarle, visto cosa potrebbe succedere...).

A parte dare le abilitazioni all'utente etc...io ti consiglio invece di cambiare il processo di generazione dello zip, usando una libreria free che fa questo lavoro in memoria egregiamente:
http://www.icsharpcode.com/OpenSource/SharpZipLib/Default.aspx

ti guardi 1po la guida, ma se hai i file puoi usare "FastZip", altrimenti puoi fare lo zip dallo stream di byte che vuoi etc...
La libreria è completa, per cui guardando 1po l'help riuscirai a fare tutto quello che ti serve.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

liveforever81 Profilo | Junior Member

Ciao!

Innanzitutto grazie per la celere risposta!

La libreria la conosco molto bene, ma mi è stato chiesto di usare pkzip25 e devo adeguarmi...

Vorrei chiederti 2 cose:

1- Come abilitare l'esecuzione dei bat?
2- Succede che l'applicazione System.Diagnostic.Process funziona magnificamente se si tratta di procedure batch (dove quindi l'asp non c'entra nulla)...è proprio per il fatto dei bat?

Grazie! ;-)

freeteo Profilo | Guru

>1- Come abilitare l'esecuzione dei bat?
nelle proprietà del sito IIS devi dirgli dirgli nella Tab Home->Execute Permissions->Scripts and Executables, ma poi devi vedere nell'evet viewer se ci sono altre limitazioni date all'utente asp.net come ti dicevo prima


>2- Succede che l'applicazione System.Diagnostic.Process funziona
>magnificamente se si tratta di procedure batch (dove quindi l'asp
>non c'entra nulla)...è proprio per il fatto dei bat?
sicuramente è dovuto ai permessi e non hai tipi di processo.
Tieni presente che puoi giocare con qualche impostazione sul processo impostando le "StartInfo":
Process processo = new Process(); processo.StartInfo.FileName = "..."; processo.StartInfo.CreateNoWindow = true; processo.StartInfo.UseShellExecute = true; processo.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; processo.Start();
etc...


>Grazie! ;-)
di nulla, spero di esserti stato utile.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5