部署XBAP应用程序?

时间:2009-05-07 11:11:07

标签: wpf deployment xbap full-trust

我们有一个WPF应用程序,它有两种版本,具有一致的UI等,一个从Windows操作系统桌面运行,另一个应该作为XBAP应用程序运行。

目前我正在将XBAP应用程序发布到我的localhost计算机IIS(Windows XP专业版),此外,我已根据需要启用了对我的方案的完全信任(Microsoft .NET Framework 2.0配置,URL完全信任)+ pfx文件(我的机器名称)当另一台机器上的用户从他的机器上的IE浏览器输入URL时安装。

假设我想将XBAP应用程序卖给客户,因为他想要一个集中的应用程序而不是桌面应用程序,那么我将如何进行呢?有XBAP部署经验的人能告诉我吗?我应该进行设置以在他的Web服务器上设置应用程序,那就是它吗? (假设网络服务器有.net 3.5 sp1)如果pfx和完全信任我应该告诉他这样做吗?

2 个答案:

答案 0 :(得分:6)

我曾在类似的情况下使用ClickOnce作为引擎来将二进制文件部署为XBAP以及标准WPF。要在客户站点安装XBAP网站,我们将有一个安装程序在IIS中创建虚拟目录,然后运行自定义步骤来签署ClickOnce清单。此步骤是必需的,因为应用程序需要访问包含有关客户环境的信息的生成配置文件。

以下是我在使用XBAP时遇到的问题的一些注意事项。

  • 客户端工作站上的Framework v3.0或更高版本的依赖关系。 (更多关于处理WPF的一般说明,除非您使用的是受控桌面,否则您可能也需要部署它)
  • 令人费解的是,用户的ClickOnce缓存无效,要求用户必须使用以下内容清除缓存:rundll32%windir%\ system32 \ dfshim.dll CleanOnlineAppCache
  • Framework v3.0 / Internet Explorer安装不正确需要重新创建用户的配置文件,重新安装dotNet框架或重新安装Internet Explorer。
  • 部署失败时来自ClickOnce的错误消息不足。很多时候它会报告一般的部署异常,修复将是上述步骤之一。
  • 在网站前使用任何身份验证时,例如ASP.Net表单身份验证,IIS受信任(不在Intranet上)或ISA之类的代理,Microsoft堆栈中存在IE无法访问的问题将身份验证传递给ClickOnce引擎。问题是,IE将成功进行身份验证,但无法将安全上下文传递给ClickOnce。当ClickOnce尝试部署应用程序文件时,它将没有安全上下文,并且身份验证将失败。但是,如果你去互联网选项 - >安全 - >选择“本地Intranet” - >点击“自定义级别...”您将看到“设置”列表。滚动到列表底部,然后在用户身份验证下 - >登录 - >确保选中“使用当前用户名和密码自动登录”选项。这应该允许IE一旦应用程序将验证信息传递给点击。

答案 1 :(得分:0)

要运行XBAP应用程序,客户端还需要运行.NET框架。没有安装.NET Framework,就无法运行XBAP。

默认情况下,只为您的应用程序授予部分信任权限。要启用FullTrust,您需要将权限授予客户端上的应用程序URL:

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

或者您可以将安全证书添加到客户端可信证书。此处提供了分步指南:How to run WPF - XBAP as Full Trust Application