zoukankan      html  css  js  c++  java
  • WPF ClickOnce应用程序IIS部署发布攻略

    WPF程序非常适合公司内网使用,唯一缺点就是客户端要安装.net框架4.0。优势也很明显,在客户端运行的是一个WinForm程序,自动下载,可以充分利用客户机的性能,而且是以当前的Windows用户权限运行,避免了权限带来的问题。而我觉得最大的益处还是可以自动更新!这样就具备了CS程序功能强大速度快的优点,又有BS程序部署升级容易的优点。

    本文要讨论的就是,WPF ClickOnce应用程序的发布,IIS设置,客户端使用的一系列过程。

    一、先建立一个IIS网站承载WPF应用程序。

    1、新建一个目录,命名IISWpf。

    2、打开IIS管理器,添加网站。

    确定,网站就建好了。打开物理路径F:IISWpf,新建一个目录WPFApp_01,以后每增加一个应用程序就建一个目录。

    二、现在开始Visual Studio的工作

    新建项目,选择WPF应用程序。注意:不是WPF浏览器应用程序。

    重点是项目属性的设置。

    安全性,启用ClickOnce安全设置

    编译好,下一步就可以发布了。

    选择iis_wpf_host下的WPFApp_01。点"打开",系统会有一个对话框询问这是一个应用程序,是否打开?当然选是。

    立即发布!

    这时在物理路径下多了一些东西,这就是发布的内容。

    到现在运行这个程序的地址已经有了:http://本机IP:7000/WPFApp_01/

     例如:http://localhost:7000/

    三、回到IIS管理器设置默认文档

    在设置默认文档前,右键WPFApp_01,转换成应用/convert to application. 文件夹图标会转换成地球图标。

    增加默认文档:XXERP.application。

    4. 发布ClickOnce包

    在发布前,我们再说两个东西,那就是代码访问安全和程序签名。

    • 代码访问安全:ClickOnce 应用程序受 .NET Framework 中代码访问安全性约束的限制,以帮助限制代码访问受保护的资源和操作的权限。 因此,了解代码访问安全性的含义以相应地编写 ClickOnce 应用程序是十分重要的。 您的应用程序可以使用完全信任或使用部分区域(如 Internet 区域和 Intranet 区域)来限制访问权限。
    • 程序签名:ClickOnce 使用证书验证应用程序发行者的真实性,并使用证书为应用程序和部署清单签名,以证明文件未被篡改。 签名是一个可选的步骤,它会使在生成清单以后更改应用程序文件更容易。 然而,在没有签名清单的情况下,很难确保应用程序安装程序在受到中间人安全攻击时不被篡改。 出于这个原因,我们建议您对应用程序清单和部署清单进行签名,以帮助保护您的应用程序。

    这部分的解释和详细介绍可以看MSDN里面的保护应用程序章节。

    然后点击发布按钮即可,发布成功后IE会自动打开发布好的页面,你只需要将发布的地址给需要安装此程序的客户就可以轻松完成程序的部署了。

    5. 问题补遗

      • 关于签名过期的问题可以参考园友许海彪的这篇文章:解决ClickOnce签名过期问题。
      • 关于ClickOnce信任文件大小的问题,修改注册表HKEY_CURRENT_USER/Software/Classes/Software/Microsoft/Windows/CurrentVersion/Deployment
        做成一项“OnlineAppQuotaInKB”的DWROD值即可。

    看看完成的结果,打开IE,输入网址http://本机IP:7000/WPFApp_01/

    我的备注:IE,EDGE都能打开。本地测试Chorme无法下载打开。

    以上转载自:REF1:http://www.cnblogs.com/edong/archive/2013/06/06/3121623.html

    ref2:http://gcsjl8.com/forum.php?mod=viewthread&tid=102

    其他:没有安装IIS 服务的,百度如何安装IIS服务。

    本机测试碰到一些报错,无法显示网页,因为没有权限读取目录:可以在Directory Browsing中点击Enable,打开后,会显示如下图。

  • 相关阅读:
    查看jvm的cg情况
    什么是json
    httpclient工具类
    mysql 优化思路(1)
    mysql存取日期出问题
    springboot和tomcat jar包冲突
    递归
    如何去理解return?
    js BOM判断当前窗口是否最顶层。
    个人笔记,关于ajax 如果没有请求成功不允许再次请求的方法。
  • 原文地址:https://www.cnblogs.com/watermarks/p/8463453.html
Copyright © 2011-2022 走看看