Ich habe einen Dienst als lokale SYSTEM ausgeführt, die eine andere Anwendung mit den Benutzeranmeldeinformationen startet. Diese zweite App ist nur ein Taskleistensymbol, das dem Benutzer Sprechblasen mit der Zeichenfolge anzeigt, die mit der Callback-Methode empfangen wurde. Diese zweite Anwendung wird im Duplexmodus mit der WCF verbunden.C# Wie erzwinge ich die Wartezeit für die Verbindung zu einem WCF-Dienst
Mein Problem ist, dass aus irgendeinem Grund die Verbindung zum WCF am Ende der Methode Main abgeschlossen ist. Daher kann ich direkt nach der Ausführung keine Callback-Nachricht an die App senden, die in der letzten Zeile "kiosk.MyStart (args);" enthalten ist. dort zeigt der Callback immer noch auf null.
Irgendeine Idee, wie ich dieses Problem lösen könnte?
static void Main(string []args)
{
if (Environment.UserInteractive)
{
// Start the WCf service
var host = new ServiceHost(typeof(WcfService));
host.Open();
//Launch the Kiosk Agent which connects to the WCF
bool ret = ProcessAsUser.Launch("C:\\Program Files (x86)\\KIOSK\\KioskAgent.exe");
WinService kiosk = new WinService(args);
// some checks and a welcome message is sent to the user.
kiosk.MyStart(args);
//...
//...
}
}
bearbeiten: ein bisschen mehr zu klären, innerhalb kiosk.MyStart Methode ist, wo ich versuche, den Rückruf auszuführen eine Willkommensnachricht zu zeigen, aber der Rückruf ist immer noch NULL. Als Ergebnis Ich gehe davon aus, dass der Client nicht richtig aus irgendeinem Grunde gestartet wurde und ich es starte wieder ...
if (WcfService.Callback != null)
WcfService.Callback.UIMessageOnCallback(UIMessage);
else
ProcessAsUser.Launch("C:\\Program Files (x86)\\KIOSK\\KioskAgent.exe");
Ich verstehe nicht, was Sie fragen, noch wo WCF in dieser 'kiosk.MyStart' Methode beteiligt ist. Was ist der Code, den du zeigst? Ist das der Service? Und woher kommt das, dass etwas null ist? Und was ist dann null? 'args' oder' kiosk'? Das braucht wirklich [mcve]. – rene
Es ist eine schlechte Idee, sich auf einen Windows-Dienst zu verlassen, um eine GUI-App erfolgreich zu starten. Was passiert, wenn kein Benutzer angemeldet ist? Betrachten Sie den Windows Task-Manager möglicherweise mit einer Only-Run-On-On-Only-Einschränkung? – MickyD
@rene, das null Ich habe es in der Kiosk.mystart-Methode, wenn ich versuche, den Rückruf zu rufen. Siehe die Notiz, die ich dem Beitrag hinzugefügt habe. – jacortijo