Jun 102010
 

ClickOnce ist ein recht komfortables System, um Software zu verteilen – insbesondere das Auto-Update ist absolut genial … wenn es funktioniert. Das wiederum ist noch relativ einfach, wenn man auch einen MS-IIS-WebServer  verwendet – nicht wenige verwenden aber einen Apache- oder andere Server und ändern wollen wir natürlich alle nichts, zumindest nicht ohne triftige Gründe.

Also suchen wir eine Möglichkeit, ClickOnce-Deployment auf einem typischen, non-full-featured,  Apache-WebServer zu schaffen.

Kurze Suche liefert schnell folgenden Treffer: ClickOnce on Apache:

Durch hinzufügen folgender Zeilen zur Date .htaccess (falls nicht vorhanden: einfach erstellen) werden die Datei-Endungen MIME-Types zugeordnet:

Speziell für ClickOnce:

AddType application/x-ms-application application
AddType application/x-ms-manifest manifest
AddType application/octet-stream deploy

Eventuell für andere Zwecke noch interessant:

AddType application/vnd.ms-xpsdocument xps
AddType application/xaml+xml xaml
AddType application/x-ms-xbap xbap
AddType application/x-silverlight-app xap

Doch leider schlägt die Installation nach registrieren der MIME-Types bei mir immer noch fehl.
Die System.Deployment.Application.InvalidDeploymentException sagt mir, dass das Manifest nicht korrekt ausgewertet werden konnte, weil DTD-Processing verboten wäre – natürlich hatte ich das nie explizit verboten.
Das selbe Setup war beim Aufruf über ein Netzlaufwerk einwandfrei, nur bei Zugriff über den WebServer schlug die Installation fehl (auch nach Download des Setups). Irgendeine Default-Sicherheitsmaßnahme des WebServers hat mir also offenbar ein Bein gestellt.
Mit etwas Glück habe ich recht schnell einen Hebel gefunden, das zu ändern: Das Synology NAS hat aus Sicherheitsgründen standardmäßig “register_globals” deaktiviert, eine PHP-Option. Nachdem ich die Funktion aktiviert hatte, klappte es auch mit dem ClickOnce-Deployment auf dem NAS.

n/a