Ciao a tutti,
ho la necessità di lanciare la stampa diretta di alcuni file pdf presenti in una cartella del server attraverso un'applicazione web asp.net.
L'applicazione gira con autenticazione windows e dovrà inviare i file ad una stampante predefinita (di rete o locale è indifferente, in pratica sarà una stampante gestibile dall'utente che utilizzerà l'applicazione). Ho capito che di default l'utente asp.net non può farlo da solo e quindi ho provato a forzare un utente (locale? di dominio?) ma ogni volta mi viene restituito uno di questi errori:
- Login non valido. (forzando utente, password e dominio al processo)
- The specified executable is not a valid application for this OS platform. (senza impersonate user)
- No application is associated with the specified file for this operation (con impersonate user, utente locale del server o utente di dominio)
Se invece non assegno nessun utente al processo, sembra funzionare tutto, ma in stampa non esce niente.
Il codice utilizzato è il seguente:
Dim myProcess As New System.Diagnostics.Process()
myProcess.StartInfo.FileName = "C:\Testing.pdf"
myProcess.StartInfo.Verb = "Printto"
myProcess.StartInfo.CreateNoWindow = True
myProcess.Start()
myProcess.WaitForExit(2000)
Con alcune varianti per l'uso diretto di username e password sul processo:
myProcess.StartInfo.UserName = strUsername
myProcess.StartInfo.Domain = strDomainName
myProcess.StartInfo.Password = secret
myProcess.StartInfo.LoadUserProfile = True
myProcess.StartInfo.UseShellExecute = False
o con l'uso di una classe che mi consente di lanciare il processo come utente XXXX.
Non vorrei eseguire l'intera applicazione come utente windows per quanto non sia un'applicazione accessibile a molti.
Ovviamente, se eseguo l'applicazione in locale e con il mio utente, mi posso divertire e mandare file a tutte le stampanti presenti in rete.
Avete qualche dritta?
grazie in anticipo, ma mi rendo conto di dove possa essere il problema, ma non ho la lucidità necessaria per trovare una soluzione :-P
ciao
P.s.
dimenticavo:
Server: Windows Server 2008 e IIS 7.5 (se non sbaglio)
Modificato da giangi_77 il 04 luglio 2011 11.11 -