Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [vb.net] Uso process.start() da web application

    Eccomi di nuovo a sbattere la testa....
    Dalla mia WebApplication devo visualizzare un file PDF associato ad un record di una tabella di un Db SQL, uso un ImageButton alla proprietà click associo il seguente codice:

    ************************************************** *************
    Protected Sub ImageButton4_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles ImageButton4.Click

    'pdf
    Dim proc As New Process
    Dim esito As Boolean
    Dim MioFilePDF As String = Label26.text '(caricata precedentemente con il nome del PDF)

    With proc.StartInfo
    .Arguments = "F:\moved\Chiusi\DDT\" & MioFilePDF 'File da aprire
    .UseShellExecute = True
    .WindowStyle = ProcessWindowStyle.Maximized
    .WorkingDirectory = "C:\Program Files\Adobe\Reader 9.0\Reader\" 'directory installazione acrobat reader
    .FileName = "AcroRd32.exe" ' eseguibile acrobat reader
    End With

    Try
    esito = Proc.Start() 'Apro il mio PDF

    Catch ex As Exception
    Throw New Exception("Errore lettura file PDF " & ex.Message, ex)
    End Try

    If esito Then
    Response.Write("esito positivo")
    Else
    Response.Write("Esito Negativo")
    End If

    proc.Close()
    proc.Dispose()
    End Sub

    ************************************************** **************
    Il response.write che si attiva è positivo, ma non parte nulla, però se vado nel taskmanager il processo è partito...

    C'è soluzione al problema ???
    Linux For Ever and Ever and Ever....

  2. #2
    Mi viene un dubbio... ho provato lo stesso codice in una win application e funziona, quindi o sbaglio qualcosa o in una applicazione client/server (web application) non si può utilizzare. Ho provato a cercare qualcosa in merito su internet, ma non trovo nulla, qualcuno ne sa qualcosa???
    Linux For Ever and Ever and Ever....

  3. #3
    Domanda: ma tu vuoi che si apra sul server o sul client?
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Originariamente inviato da MItaly
    Domanda: ma tu vuoi che si apra sul server o sul client?
    Hai ragione, scusa la poca chiarezza, sul client, l'utente deve poter visionare un file PDF associato ad un record.

    Grazie.
    Linux For Ever and Ever and Ever....

  5. #5
    La Process.Start avvia il processo sul PC su cui viene eseguito il codice che la contiene, per cui in quel modo tenteresti di avviare Adobe Reader sul server (che tra l'altro probabilmente non potrebbe partire visto che il servizio in cui viene eseguito IIS è a bassi privilegi).
    Per far visionare il PDF, inserisci semplicemente un link ad esso (che ovviamente deve essere accessibile tramite il tuo webserver), ci penserà il PC dell'utente ad aprirlo con il programma corretto.

    Per inciso, per aprire un PDF in un programma lato client inserire percorsi "fissi" come hai fatto è quanto di peggio, usa piuttosto come FileName il percorso del file da aprire e assicurati che UseShellExecute sia a True.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Originariamente inviato da MItaly
    La Process.Start avvia il processo sul PC su cui viene eseguito il codice che la contiene, per cui in quel modo tenteresti di avviare Adobe Reader sul server (che tra l'altro probabilmente non potrebbe partire visto che il servizio in cui viene eseguito IIS è a bassi privilegi).
    Per far visionare il PDF, inserisci semplicemente un link ad esso (che ovviamente deve essere accessibile tramite il tuo webserver), ci penserà il PC dell'utente ad aprirlo con il programma corretto.

    Per inciso, per aprire un PDF in un programma lato client inserire percorsi "fissi" come hai fatto è quanto di peggio, usa piuttosto come FileName il percorso del file da aprire e assicurati che UseShellExecute sia a True..
    Prrima di tutto grazie, per quanto riguarda percorsi fissi sono PIENEMENTE d'accordo con te sempre meglio usare variabili, magari anche gestite in file esterni di configurazione, il codice postato è solo di prova.
    Dunque tu dici di mettere come parametro di FileName il link al file PDF, ho capito bene???

    Grazie.
    Linux For Ever and Ever and Ever....

  7. #7
    Esatto. Metti una roba tipo "clicca qui per vedere il PDF", nel 90% dei casi il PDF sarà visto direttamente nella finestra del browser.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    GRANDE!!!
    Ho provato e con un linkbutton funziona alla grande, ora devo trovare il modo di tornare indietro dopo aver visionato il file o farlo aprire in una nuova finestra o tab.

    Grazie dei preziosissimi consigli.
    Linux For Ever and Ever and Ever....

  9. #9
    Di nulla; ricordati però che per le domande su ASP.NET la sezione è un'altra.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.