zoukankan      html  css  js  c++  java
  • 使用ClickOnce发布应用程序

    需求

    客户机与服务器之间的带宽小,在这样的环境下提高客户端下载安装文件的速度。



    解决

    • ClickOnce本身支持“部分更新”的功能

    ClickOnce在更新时会自动检测“manifeset”文件中各下载文件的指纹,只有指纹不一样的才会重新从服务器下载。

    • 实现压缩下载

    配置IIS压缩支持的文件类型

    在“C:\Inetpub\AdminScripts”目录下建批处理文件“配置IIS压缩支持的文件类型.bat”并运行。以下为批处理文件内容:

    cd C:\Inetpub\AdminScripts
    
    @echo 启动对静态压缩与动态压缩的支持
    cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoDynamicCompression true
    cscript adsutil.vbs set w3svc/filters/compression/parameters/HcDoStaticCompression true
    
    @echo 配置压缩支持的静态文件类型
    cscript.exe adsutil.vbs set w3svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "txt" "application" "manifest" "deploy" "exe" "dll"
    cscript.exe adsutil.vbs set w3svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "txt" "application" "manifest" "deploy" "exe" "dll"
    
    @echo 重启IIS
    IISRESET.EXE



    打开IIS的压缩支持选项

    1. 打开“Internet 信息服务(IIS)管理器”。
    2. 展开“本地计算机”节点,右击“网站”节点选择属性打开属性对话框。
    3. 切换至“服务”选项卡,配置“HTTP压缩”区域。
      •   勾选“压缩应用程序文件”与“压缩静态文件”
      •   确保计算机用户“IIS_WPG”对此处指定的临时目录具有“读写”权限



    测试

    • 访问后观察指定的临时目录(默认为“C:\WINDOWS\IIS Temporary Compressed Files”)中有没有对应的压缩文件生成

      只有静态文件(html、txt等)才会在此处留下痕迹,动态文件(asp、dll等)不会

    • 使用fiddler手动构建HTTP请求,观察RESPONSE的头部信息中是否包含“Content-Encoding: gzip”
    GET /clientes/ventas/Ventas_1_0_0_8/Ventas.exe.deploy HTTP/1.1
    Accept: */*
    Accept-Language: es-ar
    Accept-Encoding: gzip, deflate
    Host: youhost.yourdomain.com
    Connection: Keep-Alive




    意外

    “配置压缩支持的文件类型”这一步骤执行后未得到预计的效果。“deploy”与“application”等文件类型依旧未能得到压缩支持。

    于是打开文件“C:\WINDOWS\system32\inetsrv\MetaBase.xml”,查找“HcFileExtensions”,看到这两行命令确实没起到效果。

    难道只能取消ClickOnce中的“使用'deploy'扩展名”发布选项?NO,看我使大招:

    1. 运行net stop iisadmin /y
    2. 打开文件“C:\WINDOWS\system32\inetsrv\MetaBase.xml”,查找“HcFileExtensions”,手动将这些文件类型加入并保存。
    3. 运行iisreset


    备注

    发现第一次访问时压缩依旧未启用,第二次访问时才开始启用压缩。



    参考

    How ClickOnce Performs Application Updates

    Using HTTP Compression for Faster Downloads (IIS 6.0)

    HOW TO Enable ClickOnce Compression on IIS

    Enabling HTTP Compression (IIS 6.0)

  • 相关阅读:
    MinIO:入门
    JS中面向对象的多种继承方式
    点击按钮实现图片下载
    给大家推荐一个免费的云平台-阿贝云
    REPLACE
    SUBSTRING_REGEXPR 截取字符串
    基本的git/linux/g++/ 等指令
    C++引用和指针&, *
    go语言异常处理 error panic recover defer
    django.db.utils.IntegrityError: (1048, "Column 'id' cannot be null")
  • 原文地址:https://www.cnblogs.com/beta2013/p/3377285.html
Copyright © 2011-2022 走看看