Deploy XBAP application?
We have a WPF application that has two flavors with a compatible UI, etc., that is launched from the Windows desktop, and one that needs to run as an XBAP application.
I am currently publishing an XBAP application on my localhost IIS machine (Windows XP Pro). Also I have included full trust in my script as needed (Microsoft .NET Framework 2.0 setting, full trust URL) + pfx file (for my machine name) that gets set when a user on another machine enters a URL from an IE browser on his computer.
Tell me that I want to sell an XBAP application to a client, since he wants a centralized application, not a desktop one, then how would I do that? Can anyone with XBAP deployment experience tell me? Should I create a setup that configures the application on its webserver and what is it? (assuming the webserver is .net 3.5 sp1) How about pfx and full trust should I tell it to do this?
a source to share
I worked in a similar situation using ClickOnce as the deployment engine for both XBAP and standard WPF binaries. To install the XBAP website on the client site, we will have an installer that creates a virtual directory in IIS and then run a special step to sign the ClickOnce manifests. This step was necessary because the application needed to access a generated configuration file containing information about the client's environment.
Here are some notes on issues I've seen with XBAPs.
- Framework v3.0 or higher dependency on client workstation. (More general note when working with WPF, as if you are not using a managed desktop you might need to deploy it as well).
- Optionally, the user's ClickOnce cache would be invalid, requiring the user to clear their cache using: rundll32% windir% \ system32 \ dfshim.dll CleanOnlineAppCache
- A bad installation of Framework v3.0 / Internet Explorer requires the user profile to be recreated, the dotNet infrastructure must be reinstalled, or Internet Explorer must be reinstalled.
- Bad error messages from ClickOnce when deployment fails. He reported a generic deployment exception many times and a fix would be one of the above steps.
- When using any kind of authentication in front of the website like ASP.Net form auth, IIS is trusted (not on intranet) or proxy server like ISA, there is an issue in Microsoft stack where IE fails to authenticate to engine ClickOnce. The problem is IE will authenticate successfully but fail to pass the ClickOnce security context. When ClickOnce tries to deploy the application files, it will have no security context and authentication will fail. But if you go to "Internet Options" → "Security" - select "Local intranet" → Click "Custom level ...". A list of settings appears. Scroll to the bottom and under "User Authentication" → "Login" → make sure the option is selectedAutomatic login with current username and password. "This should allow IE to pass authentication information to one-time applications.
a source to share
To run the XBAP application, your client also needs to run the .NET framework. The XBAP cannot run without the .NET Framework installed.
By default, only partial trust permission is granted for your application. To enable FullTrust, you need to grant permission to your app URL on the client:
caspol -m -ag 1 -url "http://server/app/*" FullTrust -exclusive on
or you can add a security certificate to the trusted client certificates. A step-by-step tutorial is available here: How to Run WPF-XBAP as a Full Trust Application .
a source to share