Kann mir jemand Details zu der Rolle, die die DFSVC.EXE gerade im Ausführungszyklus einer ClickOnce-Anwendung spielt, näher erläutern oder aufzeigen? Wenn ich eine Clickonce-Anwendung starten über:ClickOnce-Laufzeitumgebung DFSVC.EXE
rundll32.exe dfshim.dll,ShOpenVerbApplication http://www.domain.com/application/?param1=foo
Ich sehe, dass ein DFSVC.EXE Prozess gestartet wird. Ich sehe dann, dass der tatsächliche EXE-Prozess meiner ClickOnce-Anwendung aufgerufen wird (von DFSVC.EXE, das als den übergeordneten Prozess in ProcessExplorer aufgelistet wird). Zu diesem Zeitpunkt kann ich die DFSVC.EXE über töten:
rundll32.exe dfshim.dll,KillService
und meine Clickonce-Anwendung läuft weiter. Ich habe auch bemerkt, dass wenn ich das DFSVC.EXE nicht töte, es nach 15 Minuten von alleine verschwindet.
Ich vermute, dass DFSVC.EXE ist verantwortlich für das Herunterladen, Installieren und Starten der Anwendung - ist das korrekt? Gibt es eine Möglichkeit, zu sagen, dass DFSVC.EXE automatisch heruntergefahren wird, nachdem diese Aufgaben für eine aufgerufene ClickOnce-Anwendung abgeschlossen sind? Ist der Grund dafür, dass es (auch nachdem die ClickOnce-Anwendung heruntergefahren wurde) eine Optimierung für den nächsten Aufruf einer ClickOnce-Anwendung ist?
Kurze Antwort: Ich glaube, dass alle Ihre Vermutungen richtig sind. Wenn Sie in Fiddler zusehen, sehen Sie, dass DFSVC den Versions-Check/Manifest-Download durchführt, und es ist ein sehr gebräuchliches Muster, diese Art von Diensten für eine gewisse Zeit als eine Perf-Optimierung zu behalten. – EricLaw