Lanciare un file da applicazione intranet

martedì 19 giugno 2007 - 15.47

Khaloisha Profilo | Newbie

Ciao a tutti, primo messaggio qua.

Il mio problema è questo (preciso che è una settimana che provo a trovare risposta... ma niente da fare ):

Ho una DataGrid in cui in una colonna ho delle etichette cliccabili. Al cliccare della suddetta etichetta, intercetto l'evento, recupero il percorso di un file da DB e dovrei aprire il suddetto con il programma associato (short-version: devo aprire un file .doc)
Ora, ho provato due sistemi:
1) Process.Start(NomeFile) = da task manager, nell'elenco dei processi, vedo che WINWORD.EXE è presente (eseguito dall'utente ASPNET), ma di farmi vedere Word vero e proprio con il documento caricato non se ne parla
2) Ho provato ad implementare la stessa cosa utlizzando l'API ShellExecute... manco a dirlo, mi ritrovo nella stessa situazione del punto uno.

La cosa strana è che non mi dà messaggi di errore nè nient'altro... sta lì a provare a far qualcosa di cui io non so.

Sapreste gentilmente spiegarmi per filo e per segno COME lancio un file da code-behind?
Grazie per l'attenzione, ciao!

EDIT: se può servire, specifico che i file .doc stanno su un file server, e che il percorso degli stessi è assoluto (\\blabla\file.doc)

adima80 Profilo | Junior Member

Ciao,
abitualmente non uso ASP.NET comunque credo che per quello che devi fare, anche se ti trovi in una intranet, devi fare scaricare il file word al client, ci pensarà poi lui ad eseguire word e a visualizzare il file. Facendo così fai eseguire al processo dell'interprete ASP word con nessun risultato visibile.

Spero di non aver detto troppe castronerie, ciao!

Khaloisha Profilo | Newbie

Ciao e grazie per la risposta!

Stavo proprio provando a copiare il file in locale e poi ad utilizzare subito dopo Process.Start(NomeFileLocale)... ti faccio sapere se funziona. :)

Grazie ancora!

EDIT: niente da fare, anche così rimane tra i processi in background e stop... sigh.

Informandomi un po' ho scoperto che una delle limitazioni di ASP.NET 1.0/1.1 è che i processi vengono comunque lanciati dall'utente ASPNET (che non ha praticamente permessi su nulla). Una delle alternative è settare il servizio "Amministrazione di IIS", sotto "Connessione", checkare la spunta "Consenti al servizio di interagire col desktop". Purtroppo per me non è una soluzione applicabile, in quanto il cliente è estremamente menoso riguardo i permessi, ed inoltre fa già girare diversi web sull'unico IIS d'azienda... a questo punto spero che qualcuno mi tiri fuori un miracolo.

adima80 Profilo | Junior Member


>Stavo proprio provando a copiare il file in locale e poi ad utilizzare
>subito dopo Process.Start(NomeFileLocale)... ti faccio sapere
>se funziona. :)


Non devi usare Process.Start, così lo esegue il processo ASPNET del server, tu da internet explorer fai partire normalmente un link del tipo "hreff=...." e poi se il client fa click su esegui al posto di download il file viene lanciato. Ricordati che qualsiasi riga di codice scritta su code behind viene eseguita lato server, è la tecnologia delle pagine dinamiche lato server a funzionare così; se vuoi provare a far eseguire qualcosa dal client ti conviene provare con qualche script di JAVASCRIPT, ma non credo sia permesso far partire applicazioni dal browser via javascript!

Ciao

Khaloisha Profilo | Newbie

Ciao, grazie per la risposta :)

In realtà ho risolto in accordo col cliente di modificare le proprietà userName e password del <processModel> di machine.config, in questo modo process.Start viene eseguito con i permessi concordati (che in questo caso sono tre dir di un file server).

Thanks again!

meronet Profilo | Newbie

ciao a tutti
io vorrei far lanciare un aplicazione client in dotnet fatta a me
al click di un pulsante che e su pagina in aspnet

ho letto la discussione e mi pare di aver capito che non e fattibile
neanche se creo un active x !!!!
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5