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

ClickOnce部署时可正常访问的URL报404及URI解析错误如何解决?

根因定位方向

你遇到的Invalid URI: The hostname could not be parsed报错结合VB.NET项目的差异,核心问题大概率出在ClickOnce部署清单的生成规则上,VB.NET WinForm项目的ClickOnce发布默认配置和C#项目不一致,会导致启动URL解析异常。

排查步骤

  • 第一步:检查发布配置的「安装URL」和「更新URL」是否和实际部署的URL完全一致

    VB.NET项目发布时如果没有手动指定完整的HTTPS安装URL,会默认用本地开发路径生成清单,启动时就会出现URL解析失败。你可以右键VB主项目→属性→发布选项卡,确认「安装文件夹URL」是否完整填写为https://mypc/apps/foo/,注意末尾必须加斜杠,否则生成的清单拼接路径会出错。

  • 第二步:检查VB项目的应用清单配置

    你提到的VB项目没有Manifest下拉选项是正常的,VB.NET项目的清单配置默认写在app.manifest文件里,你点击「View Windows Settings」按钮就能打开这个文件,检查里面是否有自定义的部署相关配置,默认的requestedExecutionLevel节点不需要修改,确保没有多余的URI相关的自定义配置。

  • 第三步:验证生成的.application部署清单内容
    发布完成后打开部署根目录下的你的项目名.application文件,搜索codebase属性,确认对应的路径是https://mypc/apps/foo/开头的完整正确路径,而不是本地路径或者缺hostname的相对路径。如果这里的codebase路径错误,启动时就会报hostname解析失败。
  • 第四步:检查IIS的MIME类型配置
    确认IIS站点已经添加了ClickOnce需要的三个MIME类型:
    • .application → application/x-ms-application
    • .manifest → application/x-ms-manifest
    • .deploy → application/octet-stream

    你其他C#项目能正常启动不代表MIME一定没问题,部分VB项目生成的清单文件扩展名大小写或者编码差异会触发MIME校验失败,返回404。

解决方案

如果排查后确认是发布时URL生成错误,重新发布时按以下步骤配置:

  1. 打开VB主项目的「发布」选项卡,点击「选项」按钮
  2. 选择「清单」类别,勾选「使用应用程序清单 for trust information」
  3. 回到发布主页面,完整填写「安装文件夹URL」为https://mypc/apps/foo/,「更新URL」也填写相同的地址,末尾必须带斜杠
  4. 重新发布,覆盖IIS目录下的原有文件即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:09:03