2009-05-07 56 views
0

Wir haben eine WPF-Anwendung, die zwei Varianten mit einer konsistenten UI usw. hat, eine, die von einem Windows-Desktop ausgeführt wird und eine, die als XBAP-Anwendung ausgeführt werden soll.XBAP-Anwendung bereitstellen?

Derzeit veröffentliche ich die XBAP-Anwendung auf meinem lokalen Host-Computer IIS (Windows XP Pro), auch habe ich volles Vertrauen in mein Szenario, wie es benötigt wird (Microsoft .NET Framework 2.0 Konfiguration, URL Full Trust) + PFX-Datei aktiviert (für meinen Computernamen), der installiert wird, wenn ein Benutzer auf einem anderen Computer die URL aus dem IE-Browser auf seinem Computer eingibt.

Angenommen, ich möchte die XBAP-Anwendung an einen Kunden verkaufen, da er eher eine zentralisierte App als eine Desktop-App möchte. Wie gehe ich dann vor? Kann mir jemand mit XBAP-Einsatz Erfahrung sagen? Sollte ich ein Setup machen, das die Anwendung auf seinem Webserver aufsetzt und das war's? (Angenommen Webserver hat .net 3.5 sp1) Was ist mit pfx und voller Vertrauen sollte ich ihm sagen, das zu tun?

Antwort

6

Ich habe in einer ähnlichen Situation der Verwendung von ClickOnce als die Engine zum Bereitstellen der Binärdateien als XBAP sowie Standard WPF gearbeitet. Um die XBAP-Website auf einer Kundensite zu installieren, erstellen wir das virtuelle Verzeichnis in IIS und führen dann einen benutzerdefinierten Schritt zur Signierung der ClickOnce-Manifeste aus. Dieser Schritt war erforderlich, da die Anwendung auf eine generierte Konfigurationsdatei zugreifen musste, die Informationen zur Kundenumgebung enthielt.

Hier sind einige Hinweise zu Problemen, die ich bei der Verwendung von XBAP gesehen habe.

  • Abhängigkeit von Framework v3.0 oder höher auf der Workstation des Clients. (Eine weitere allgemeine Anmerkung zu WPF, wenn Sie nicht einen kontrollierten Desktop verwenden, müssen Sie möglicherweise ebenfalls bereitstellen)
  • Unerklärlicherweise würde der ClickOnce-Cache des Benutzers für ungültig erklärt werden, so dass der Benutzer seinen Cache löschen muss using: rundll32% windir% \ system32 \ dfshim.dll CleanOnlineAppCache
  • Bei einer fehlerhaften Installation von Framework v3.0/Internet Explorer muss das Benutzerprofil neu erstellt, das dotNet-Framework neu installiert oder der Internet Explorer neu installiert werden.
  • Schlechte Fehlermeldungen von ClickOnce, wenn Bereitstellungen fehlschlagen. Oftmals würde es eine allgemeine Deployment-Ausnahme melden, und der Fix wäre einer der obigen Schritte.
  • Wenn Sie eine Authentifizierung vor der Website verwenden, z. B. ASP.Net-Formulare auth, IIS vertrauenswürdig (nicht im Intranet) oder einen Proxy wie ISA, gibt es ein Problem innerhalb des Microsoft-Stapels, wo IE nicht in der Lage ist Übergeben Sie die Authentifizierung an die ClickOnce-Engine. Das Problem besteht darin, dass der Internet Explorer erfolgreich authentifiziert wird, den Sicherheitskontext jedoch nicht an ClickOnce übergeben kann. Wenn ClickOnce versucht, die Anwendungsdateien bereitzustellen, hat es keinen Sicherheitskontext und die Authentifizierung schlägt fehl. Aber wenn Sie zu Internetoptionen gehen -> Sicherheit -> wählen Sie "Lokales Intranet" -> Klicken Sie auf "Benutzerdefinierte Ebene ..." Sie werden eine Liste der Einstellungen sehen.Scrollen Sie zum Ende der Liste und unter Benutzerauthentifizierung -> Anmeldung -> stellen Sie sicher, dass die Option 'Automatische Anmeldung mit aktuellem Benutzernamen und Passwort' ausgewählt ist. Dies sollte dem IE ermöglichen, Authentifizierungsinformationen an die einmal aufgerufenen Anwendungen zu übermitteln.
+0

Ich frage mich, die XBAP-Anwendungen Konfigurationsdatei müsste geändert werden sagen die Datenbank Verbindungszeichenfolge etc ... Wie unterzeichne ich die Datei nach? Angenommen, ich ging zum Client und änderte meine Konfigurationsdatei, die XBAP-Anwendung würde nicht richtig funktionieren? – abmv

+0

Richtig. Sobald Sie die Konfigurationsdatei (oder eine beliebige ClickOnce-gesteuerte Datei) geändert haben, sind die in den ClickOnce-Manifesten gespeicherten Hashwerte nicht mehr gültig und Sie erhalten einen clickonce-Bereitstellungsfehler. Dies gilt für jede Art von ClickOnce-Anwendung. Um diese Situation zu ermöglichen, hatte ich einen benutzerdefinierten Installationsschritt, der die Konfiguration erstellt und anschließend die Manifeste mithilfe des Namespaces Microsoft.Build.Tasks.Deployment.ManifestUtilities neu generiert. –

+0

Q1.Können Sie bitte den Code oder einen Link zu einem funktionierenden Beispiel für die Aktion im benutzerdefinierten Installationsschritt eingeben.Wenn Sie WiX verwendet oder ein Installationsprogramm in Visual Studio hinzugefügt haben? Q2.Ich nehme an, dass Sie den ClickOnce speziell für den Kunden gemacht haben, habe ich Recht? Sie mussten ClickOnce für die Kunden-URL veröffentlichen, z. http: // Kundenserver/Ihre_App? – abmv

0

Zum Ausführen der XBAP-Anwendung muss Ihr Client auch .NET Framework ausführen. Es ist nicht möglich, XBAPs ohne installiertes .NET Framework auszuführen.

Standardmäßig wird Ihrer Anwendung nur teilweise Vertrauenswürdigkeit gewährt. So aktivieren Sie Fulltrust, benötigen Sie entweder die Erlaubnis, Ihre Anwendung URL auf dem Client zu gewähren:

caspol -m -ag 1 -url "http://server/app/*" FullTrust -exclusive on 

oder Sie können das Sicherheitszertifikat für die Client vertrauenswürdige Zertifikate hinzufügen. Eine Schritt-für-Schritt-Anleitung finden Sie hier: How to run WPF - XBAP as Full Trust Application.