0

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

目前我正在将 XBAP 应用程序发布到我的 localhost 机器 IIS(Windows XP Pro),而且我已经在我的场景中根据需要启用了完全信任(Microsoft .NET Framework 2.0 配置,URL 完全信任)+ pfx 文件(对于我的机器当另一台机器上的用户从其机器上的 IE 浏览器键入 URL 时,将安装该名称)。

假设我想将 XBAP 应用程序出售给客户,因为他想要一个集中式应用程序而不是桌面应用程序,那么我将如何去做呢?有 XBAP 部署经验的人可以告诉我吗?我是否应该进行设置以在他的 Web 服务器上设置应用程序,仅此而已?(假设 web 服务器有 .net 3.5 sp1)我应该告诉他这样做 pfx 和完全信任怎么样?

4

2 回答 2

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 尝试部署应用程序文件时,它将没有安全上下文,并且身份验证将失败。但是,如果您转到 Internet 选项--> 安全--> 选择“本地 Intranet”--> 单击“自定义级别...”,您将看到设置列表。滚动到列表底部并在用户身份验证下 --> 登录 --> 确保选择了“使用当前用户名和密码自动登录”选项。
于 2009-05-12T22:18:39.907 回答
0

要运行 XBAP 应用程序,您的客户端还需要运行 .NET 框架。在未安装 .NET Framework 的情况下无法运行 XBAP。

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

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

或者您可以将安全证书添加到客户端受信任的证书中。此处提供了分步指南:如何将 WPF-XBAP 作为完全信任应用程序运行

于 2009-05-11T21:20:33.410 回答