Vorrei eseguire un processo da un client Intranet sul lato del servizio WCF. Nel mio caso, un client chiede a un server di creare un nuovo processo sulla macchina del server con le credenziali fornite. servizio WCF è ospitato su IIS 7.5 e avviare un processo utilizzando questo codiceCome avviare un processo da un servizio WCF ospitato da IIS?
var processInfo = new ProcessStartInfo("C:\\Windows\\System32\\notepad.exe")
{
UserName = "some user",
Password = MakeSecureString("some password"),
UseShellExecute = false,
LoadUserProfile = true
};
Process process = Process.Start(processInfo);
Questo codice funziona se ospito servizio WCF come un'applicazione di console self-hosted in esecuzione con utente admin e vedo il blocco note iniziata sotto un altro utente . Viene a mancare su IIS senza eccezione, ma il processo è terminato immediatamente
process.HasExited = true;
process.ExitCode = -1073741502;
Su richiesta IIS WCF viene eseguito con l'utente con diritti di amministratore e ha piena fiducia definito nel web.config. Non è possibile utilizzare l'applicazione self hosted in quanto non supporta la consegna continua semplice (come WebDeploy con Web farm IIS).
Q: Come è possibile avviare un processo sul lato server dal servizio WCF ospitato su IIS?
EDIT:
sono incappato questo post, con problemi simili e ho provato tutti i metodi là, tra tutte le possibili varianti per Process.Start e P/Invoke con CreateProcessWithLogonW e CreateProcessAsUser ho anche provato concedere autorizzazioni aggiuntive agli utenti. Non di ciò funzionerebbe con i messaggi di errore identici a quelli che il ragazzo aveva pubblicato.
qualsiasi soluzione finale con un esempio di codice sorgente completo? – Kiquenet
Non è possibile senza hack sporchi. Non l'ho fatto – oleksii
quali hack sporchi? – Kiquenet