2

我刚刚下载并安装了适用于 Windows 桌面的 Visual Studio Express 2013。

我正在使用用户名/密码身份验证代理,但我不知道如何注册产品(女巫现在活跃了 14 天)。

每次:407 - 需要代理身份验证

我尝试编辑 WDExpress.exe.config 以添加到该部分

    <defaultProxy>
        <proxy
        usesystemdefault="true"
        proxyaddress="http://x.x.x.x:8080"
        bypassonlocal="true"
        />

但它也不起作用。

4

2 回答 2

2

转到您的 Visual Studio 文件夹,搜索 devenv.exe.config 文件,搜索<system.net>标记并将其替换为以下内容:

<system.net>
  <defaultProxy useDefaultCredentials="true" />
</system.net>
于 2015-12-29T15:03:09.187 回答
1

此解决方案适用于 Visual Studio 2017,但可以适应类似的错误和应用程序。可用作 Visual Studio 代理错误的通用方法,只需更改进程和位置。更新:它也适用于 Visual Studio 2015。您只能配置一个进程。

请按照以下步骤操作:

  1. 使用身份验证数据创建一个 dll
  2. 将dll复制到每个进程的目录
  3. 为每个进程配置Visual Studio ".exe.config" XML 文件以使用创建的 dll。4.(可选)使用 Fiddler 进行监控时尝试使用 Visual Studio 。

  1. 您可以使用像SharpDevelop这样的轻量级 IDE来创建 dll。在 ShareDevelop 中,单击File->New->Solution并选择C#/Windows Application/windows User Control Library类别。将应用程序命名为AuthProxy。创建一个名为AuthProxyModule.cs的类并将此代码放入其中:

    using System;
    using System.Net;
    
    namespace AuthProxy
    
    {
        public class AuthProxyModule : IWebProxy
        {
    
            ICredentials crendential = new NetworkCredential("USERNAME", "PASSWORD");
    
                public ICredentials Credentials    
                {    
                    get
                    {
                        return crendential;
                    }
                    set
                {
                    crendential = value;
                }
            }
    
            public Uri GetProxy(Uri destination)
            {
                return new Uri("http://proxy:8080", UriKind.Absolute);
            }
    
            public bool IsBypassed(Uri host)
            {
                return host.IsLoopback;
            }
        }
    }
    

    “用户名”“密码”中,您应该为您设置正确的值。此外,您应该配置正确的 URI(在示例中为proxy:8080)构建解决方案,您可以在 solution/bin/Debug 文件夹中获取 AuthProxy.dll。此步骤基于此站点

  2. 将 Authproxy.dll 文件复制到此目录:

    • (2017、2015)C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
    • (仅限 2017)C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\ServiceHub\Services\Microsoft.Developer.IdentityService
    • (仅限 2017)C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\ServiceHub\Services\Microsoft.Developer.Settings
    • (仅限 2017)C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\ServiceHub\Hosts\ServiceHub.Host.CLR.x86
  3. 然后在和标签之间添加以下代码:

    <system.net>
      <defaultProxy>
        <module type="AuthProxy.AuthProxyModule, AuthProxy"/>
      </defaultProxy>
    </system.net> 
    

    分别到步骤 2 中的目录中的此 XML 配置文件:

    • devenv.exe.config(2015、2017)
    • Microsoft.Developer.IdentityService.dll.config (2017)
    • Microsoft.Developer.Settings.dll.config (2017)
    • ServiceHub.Host.CLR.x86.exe.config (2017)
  4. 使用 Fiddler 进行监控。在 Fiddler 中,列Process显示devenvservicehub.identityhubservicehub.settingshost。生成请求的进程。

    发生错误时,结果列显示407 。工作时显示200。连接 HTTP/1.1 将返回407。连接 HTTP/1.0 应该返回200。如果没有,您必须检查与该进程关联的配置文件。

    Inspectors选项卡中,单击请求的Auth视图和响应的Headers视图。这是了解它发生了什么的简单方法。

注意:请记住,如果您升级 Visual Studiodevenv.exe.config文件会被修改<system.net>并由安装程序自动更改为:

    <system.net>
      <settings> 
        <ipv6 enabled="true"/>
      </settings>
    </system.net>

您应该重新配置流程。

这个解决方案看起来很复杂,但它对我有用,让我了解和监控它发生了什么。

于 2017-09-21T18:10:30.550 回答