用户无法安装单击一次应用程序

时间:2009-08-21 09:21:39

标签: winforms .net-3.5 clickonce

我有一个相对简单的支持应用程序,我选择通过点击一次部署到我们的支持人员。

我认为它仍称为Click-Once。我正在使用VS2008中项目属性的发布选项卡。

有几个用户设法点击进入网址,下载并运行该应用程序。

一个特定用户不能。

他安装了.Net 3.5 SP1,并且确实到达了发布页面,在那里他可以选择安装。点击这个后,他会收到一条错误消息

错误消息包含以下短语

  • 无法启动应用程序
  • 应用程序下载未成功
  • 检查您的网络连接或联系您的系统管理员网络服务提供商
  • 由于目标计算机主动拒绝连接,因此无法建立连接

我很想知道可能导致这种情况的原因......

我无法理解为什么我发布的服务器会以不同的方式对待这个用户。

有什么想法吗?

5 个答案:

答案 0 :(得分:4)

要求您的用户点击“详细信息...”按钮,然后通过电子邮件向您发送完整内容。在“错误摘要”部分中,您可能会看到以下内容:

案例1:检测到以下失败消息:

  1. 下载APPLICATION_FILE_URL未成功。
  2. 远程服务器返回错误:(407)需要代理验证。
  3. 用户应该收到“需要代理身份验证”对话框的提示,但如果他们没有看到,则代理服务器返回非标准响应。基本上你需要让你的代理服务器的供应商来修复他们破碎的软件,但是你可以通过让他们编辑他们工作站的MACHINE.CONFIG文件以包含以下内容来解决问题:

    <configuration>
        <system.net>
            <settings>
                <httpWebRequest useUnsafeHeaderParsing="true" />
            </settings>
        </system.web>
    </configuration>
    

    案例2:检测到以下失败消息:

    1. 下载APPLICATION_FILE_URL未成功。
    2. 远程服务器返回错误:(403)Forbidden。
    3. 这通常意味着源服务器(托管应用程序的Web服务器)正在主动拒绝您的用户访问。 这是由于:

      1. IP地址限制 - 如果它是内部企业Web服务器,则很可能。如果您有一个受IP地址限制的网站,请找出您的用户的IP(假设它是静态的)并将其添加到访问列表中。

      2. 文件系统许可 - 内部企业服务器上的另一个常见问题。找出您的用户向您的服务器验证的用户名(组/),并确保.application文件和该目录的所有内容(包括目录本身)对其帐户具有正确的权限。

      3. 希望这有帮助!

答案 1 :(得分:1)

他甚至没有安装应用程序。要尝试的事情:

  1. 为用户提供.application文件的链接,而不是setup.exe的链接,看看是否有帮助(可能不是)。
  2. 关闭用户的防火墙并再次尝试。如果这样做,你需要弄清楚如何通过防火墙。
  3. 您是否通过授予特定用户访问权限来保护服务器上的ClickOnce部署文件?如果是这样,那家伙就没有了。
  4. 在同一台计算机上创建另一个用户帐户,然后尝试安装该应用程序。它有用吗?然后这个人的个人资料很时髦。

答案 2 :(得分:1)

要考虑的一件事是清除用户应用程序缓存。我已多次遇到此问题,似乎由于某种原因,ClickOnce应用程序可能会损坏,并且它们没有自行修复的机制。

对于Vista,应用缓存位于 C:\ Users \\ AppData \ Local \ Apps \ 2.0 。之后,它变成了一堆随机文件夹名称(如NXJW1HVZ.DQH)。我很幸运只是删除了2.0目录。任何安装的应用程序将在用户下次从Web打开时重新安装。

警告!删除所有内容都可能会删除与已安装的应用相关联的数据,因此您可能需要更多的手术而不仅仅是删除所有内容(如果您仔细浏览文件夹,您会找到您的应用)

答案 3 :(得分:0)

可能为时已晚:)

我的问题就像你的问题。我只需在NotePad Editor的根文件目录中打开[Program-Name].Application,然后更改此标记:

<deploymentProvider codebase="file://server-name/Setup-directory/[P-N].application" />

Server-NameSetup-Directory必须与您共享ClickOnce-Setup-File and Directory的位置相同。

试试吧,也许可以帮助你。

答案 4 :(得分:-1)

我有错误的权限,但随后将其修复。因此Clickonce说禁止在其他浏览器中访问的文件中包含403。然后,它只是神奇地起作用了。这只是一个理论,但我认为Clickonce使用的是自己的缓存位置,如果以前失败,则在更正权限后将继续说403。