【问题标题】:Office Add-In installation VSTO download failedOffice 加载项安装 VSTO 下载失败
【发布时间】:2012-08-31 13:55:54
【问题描述】:

我有一个从 Web 服务器安装的 Outlook 加载项。此加载项的工作方式与我在 Office 中使用的所有其他加载项相同。

  1. setup.exe 已下载并执行
  2. 所有先决条件(.Net 框架等)均已验证
  3. vsto 文件已下载

到目前为止,安装这个插件的每个人都没有遇到任何问题(这个插件已经使用了大约一年)。我们有一个新客户在 Windows 7 上安装它,我们看到了我们的第一个问题。这是错误:

There was an error during installation:
Downloading http://<path and filename>.vsto did not succeed

***************** Exception Text******************
System.Deployment.Application.DeploymentDownloadException: Downloading http://<path and filename>.vsto did not succeed
System.Net.WebException: The remote server returned an error: (407) Proxy Authentication Required. ---> System.ComponentModel.Win32Exception: The token supplied to the function is invalid
at System.Net.NTAuthentication.GetOutgoingBlob(Byte[] incomingBlob, Boolean throwOnError, SecurityStatus& statusCode)
at System.Net.NTAuthentication.GetOutgoingBlob(String incomingBlob)
at System.Net.NtlmClient.DoAuthenticate(String challenge, WebRequest webRequest, ICredentials credentials, Boolean preAuthenticate)
at System.Net.NtlmClient.Authenticate(String challenge, WebRequest webrequest, ICredentials credentials)
at System.Net.AuthenticationManager.Authenticate(String challenge, WebRequest request, ICredentials credentials)
at System.Net.AuthenticationState.AttemptAuthenticate(HttpWebRequest httpWebRequest, ICredentials authInfo)
at System.Net.HttpWebRequest.CheckResubmitForAuth()
at System.Net.HttpWebRequest.CheckSubmit(Exception& e)
--- End of inner exception stack trace ---
at Microsoft.VisualStudio.Tools.Applications.Deployment.ClickOnceAddInDeploymentManager.InstallAddIn()

显然,我无法从我的位置复制。我的直觉告诉我这个客户的网络安全引起了问题(我的理解是他们有一系列防火墙等),但他们的 Windows XP 机器安装没有问题。

有人看到我遗漏的东西吗?

【问题讨论】:

    标签: vb.net outlook vsto clickonce


    【解决方案1】:

    最后,答案并不太难。发生的事情是,显然,用户位于阻止 VSTO 文件下载的代理服务器后面,因为它没有代理凭据。

    所以,我不得不为这些用户破例,将所有文件以 zip 格式发送给他们,以便他们安装。

    请注意,遇到此问题的用户必须先运行命令以清除 ClickOnce 应用缓存,然后再继续;看起来仅仅尝试安装它就会留下一些导致问题的残留物。如果您还不知道,可以通过从命令提示符运行此命令(或创建一个包含以下内容的 .bat 文件)来清除应用缓存:

        rundll32 dfshim CleanOnlineAppCache
    

    【讨论】:

    • 感谢您回复您的解决方案!
    【解决方案2】:

    【讨论】:

    • Silverninja,感谢您提供的链接。但是,这特别适用于 .Net Framework 2.0,并且该修补程序是 6 年前发布的。我在这个项目中使用 .Net 4.0。
    • 值得一试!这related SO post 有帮助吗?它描述了 ClickOnce 代理身份验证 解决方法。
    • @SliverNinja:不,您无法在 .Net 4 上安装修复程序。我刚刚尝试过。
    【解决方案3】:

    最终用户或 IT 可以修改 machine.config 以通过其 NTLM 登录启用代理身份验证。这将允许他们在需要身份验证的代理后面安装 ClickOnce 或 VSTO 应用程序。

    操作方法:将您的默认代理更改为始终使用您的默认凭据(NTLM 登录)。

    1. 编辑 %windir%\Microsoft.NET\Framework\v4.0.30319\config\machine.config

    2. 添加如下所示的 defaultProxy 元素。当一个已经存在时,记得添加到现有的 system.net 部分。

    <configuration>
    ..
    
      <system.net>
        <defaultProxy enabled="true" useDefaultCredentials="true"/>
      </system.net>
    
    ...
    </configuration>
    

    Element (Network Settings)

    使用默认凭据 指定此主机的默认凭据是否用于访问 Web 代理。默认值为 false

    【讨论】:

    • bdeem,感谢您的回复。不幸的是,这无济于事。这些用户所在的公司拥有可笑的 IT/安全部门,用户的计算机被完全锁定,他们拒绝协助在他们的机器上安装此产品。做出这种改变是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2010-11-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2016-11-23
    相关资源
    最近更新 更多