Office加载项安装VSTO下载失败

时间:2012-08-31 13:55:55

标签: vb.net outlook vsto clickonce

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

  1. setup.exe已下载并执行
  2. 验证所有先决条件(.Net框架等)
  3. vsto文件已下载
  4. 到目前为止,安装此加载项的每个人都没有遇到任何问题(此加载项已使用了大约一年)。我们有一个新客户在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机器安装没有问题。

    有人看到我遗失的任何东西吗?

3 个答案:

答案 0 :(得分:5)

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

所以,我必须为这些用户制作一个例外,将所有文件发送到他们可以安装的zip文件中。

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

    rundll32 dfshim CleanOnlineAppCache

答案 1 :(得分:1)

答案 2 :(得分:0)

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

如何:将默认代理更改为始终使用默认凭据(NTLM登录)。

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

  2. 添加如下所示的defaultProxy元素。记住在已存在的情况下添加到现有的system.net部分。

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

    Element (Network Settings)

      

    <强> useDefaultCredentials   指定是否使用此主机的默认凭据来访问Web代理。默认值为 false