You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ClickOnce搭配个人FTP服务器实现公司应用自动更新遇报错求助

问题核心原因

你遇到的报错本质是协议端口混用错误:FTP服务默认占用21端口,而HTTP/HTTPS协议需要使用独立的未被占用的端口,两者不能共用同一端口。

具体修复步骤

  • 发布路径配置不需要修改:你当前设置的ftp://[IP.ADDRESS]:21/Folder/Subfolder是用于本地打包后上传应用文件到服务器的路径,走FTP协议用21端口属于正常配置。
  • 重新配置安装/更新URL:
    1. 先在IIS中单独创建一个HTTP/HTTPS站点,物理路径指向FTP服务对应的Folder/Subfolder目录,给该站点开放匿名读取权限。
    2. 给这个HTTP站点绑定独立端口,HTTP默认用80端口,自定义可选择8080等未被占用的端口;HTTPS默认用443端口,自定义可选择8443等端口,确保和FTP的21端口完全隔离。
    3. 将ClickOnce的安装文件夹URL修改为对应站点的地址,比如HTTP场景用http://[IP.ADDRESS]:8080/Folder/Subfolder,HTTPS场景用https://[IP.ADDRESS]:443/Folder/Subfolder。
  • 补全IIS站点MIME类型配置:
    在刚才创建的HTTP站点的MIME类型设置中添加3项规则,否则ClickOnce相关文件会被拦截无法下载:
    • .application → application/x-ms-application
    • .manifest → application/x-ms-manifest
    • .deploy → application/octet-stream
  • 修复SSL配置问题:
    之前你用HTTPS访问21端口时,实际上是在和FTP服务的FTPS握手通道通信,和ClickOnce需要的HTTPS TLS握手逻辑完全不同,所以会出现握手失败报错。端口修正后,如果用HTTPS站点:
    1. 给IIS的HTTPS站点绑定合规SSL证书
    2. 如果是内网用的自签名证书,需要将证书导入到所有客户端设备的「受信任的根证书颁发机构」存储区,避免信任验证失败。

验证方法

配置完成后先在浏览器直接访问更新路径下的应用文件:http://[你的IP]:[你绑定的端口]/Folder/Subfolder/application.application(注意你报错中的文件名拼写为applciation.application,请先确认实际文件名拼写正确),如果浏览器可以正常弹出下载提示,说明站点配置无误,再测试ClickOnce自动更新功能即可。

内容的提问来源于stack exchange,提问作者TheAdmiral4273

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 17:24:06