ClickOnce清单和部署问题

3
一些用户(但不是全部)在尝试从特定的Web服务器安装ClickOnce应用程序时遇到错误。他们收到的错误信息如下:

平台版本信息 Windows : 5.1.2600.196608 (Win32NT) 公共语言运行库 : 2.0.50727.3615 System.Deployment.dll : 2.0.50727.3053 (netfxsp.050727-3000) mscorwks.dll : 2.0.50727.3615 (GDR.050727-3600) dfdll.dll : 2.0.50727.3053 (netfxsp.050727-3000) dfshim.dll : 4.0.31106.0 (Main.031106-0000) 来源 部署网址 : http://TheCorrectDeploymentURL/MyApp.application 错误摘要 下面是错误摘要,这些错误的详细信息将在日志中列出。 * 激活http://TheCorrectDeploymentURL/MyApp.application导致异常。检测到以下故障消息: + 从https://TheWrongServer.TheUrlForLoggingIntoTheVPN.com/url_3/welcome.cgi读取清单时发生异常:可能清单无效或文件无法打开。 + 第14行上的“link”开始标记与“noscript”的结束标记不匹配。第15行,位置3。 组件存储事务失败摘要 未检测到任何事务错误。 警告 在此操作期间没有警告。 操作进度状态 * [8/24/2010 1:15:12 PM] :启动http://TheCorrectDeploymentURL.com/MyApp.application的激活。 错误详细信息 在此操作期间检测到以下错误。 * [8/24/2010 1:15:37 PM] System.Deployment.Application.InvalidDeploymentException (ManifestParse) - 从http://TheCorrectDeploymentURL.com/publish.htm读取清单时发生异常。

它试图从错误的位置读取清单。当ClickOnce认为VPN的网页是应用程序的清单时,异常就会发生。有任何想法,为什么Clickonce尝试从VPN连接的URL而不是部署Clickonce应用程序的服务器读取清单?谢谢!
1个回答

0

清单位置在ClickOnce部署的.application文件中定义(在dependentAssembly标记中)。如果您通过在项目属性中定义它来生成此文件,我不确定您如何会混淆。此外,一旦生成了清单,您无法更改它,因为其中存储了哈希码以验证它。

我建议检查.application文件并验证在其中定义的URL是否正确,并且其根目录是否与.application文件的路径匹配。实际上,通常将清单文件的路径定义为相对URL,这意味着如果用户能够访问.application文件,则没有理由他们不能访问清单文件。

除非——您是否在.application文件所在文件夹下的子文件夹中定义了不同的安全性?也许Web服务器正在尝试让用户登录,当他们没有适当的安全访问子文件夹时,但是可以访问根文件夹。


感谢您的快速回复!dependentAssembly标签中不存在URL,但我看到了一个codebase属性,它指向应用程序文件的正确相对位置。此外,我正在使用Visual Studio进行发布,并没有编辑任何内容。根目录和子文件夹的安全设置是相同的。 - Noel
从错误消息来看,似乎网络服务器在请求清单时会弹出登录(或欢迎)屏幕。还要检查网络服务器的web.config文件,看看是否排除了某些文件或特别包含在安全性中,也许.application文件被特别排除在安全性之外,但所有其他位置(对于ClickOnce应用程序无法指定)都包括在内。 - Russ
上面的welcome.cgi是VPN登录界面的URL(在完全不同的服务器上)。web.config非常基本。唯一的安全信息是不要使用模拟身份。还要注意,这仅适用于某些用户。 - Noel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接