Frage

Ich versuche, meine Clickonce-Anwendung mit C # -Code mit HttpWebRequest-Klasse zu starten. Die Anwendung kann fein mit IE entfaltet werden. Aber wenn der Einsatz mit meinem Code zu tun, es scheint nur die .application Datei zum Client heruntergeladen wird.

Mein Code ist als unten.

        HttpWebRequest getRequest = (HttpWebRequest)WebRequest.Create("http://localhost/test/test.application");
        getRequest.Method = "GET";
        getRequest.Timeout = 500000;                   //default is 100 seconds  

        HttpWebResponse getResponse = (HttpWebResponse)getRequest.GetResponse();
        string loginUrl = getResponse.ResponseUri.AbsoluteUri;
        StreamReader responseReader = new StreamReader(getResponse.GetResponseStream());
        string responseData = responseReader.ReadToEnd();
        responseReader.Close();

Gibt es etwas, was ich falsch mache mit meinem Code?

Danke! - Bruce

War es hilfreich?

Lösung

Ich glaube, dass es etwas Besonderes, dass IE tut, wenn es eine .application Datei sieht. Deshalb nicht von Clickonce entfaltet FireFox bis .NET 3.5 SP1 funktioniert hat einen Handler für hinzugefügt. Also, was Sie sehen, wäre das richtige Verhalten - Ihre App rein zieht Sie die Datei als einen Strom von Bytes -. Es nicht weiß, was mit ihm zu tun

Wenn Sie wollen programmatisch die Anwendung starten, würde ich dies vorschlagen statt:

System.Diagnostics.Process.Start("http://localhost/test/test.application");

Aktualisieren

Es ist ein bisschen mehr Informationen über die gesamte Clickonce / FireFox Sache hier . Anscheinend ist ein MIME-Typ-Handler für IE installiert, die die Anwendung / -ms-Anwendungstyp erkennt und führt die Datei mit dem Clickonce Installer. Es kann einige Kontrollen aus dem alten Firefox-Add-ons wert sein, dass diese vor dem .NET 3.5 SP1 aktiviert und sieht, was sie taten programmatisch die .application Datei zu starten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top