このソリューションは Visual Studio 2017 で機能しますが、同様のエラーやアプリケーションにも適用できます。プロセスと場所を変更するだけで、Visual Studio プロキシ エラーの一般的な方法として使用できます。更新: Visual Studio 2015 でも機能します。1 つのプロセスのみを構成する必要があります。
次の手順に従います。
- 認証データを含むdll を作成します。
- dllを各プロセスのディレクトリにコピーします
- 作成した dll を使用するように、プロセスごとにVisual Studio の ".exe.config" XML ファイルを構成します。4.(オプション) Fiddler で監視する場合は、Visual Studio を試してください。
SharpDevelopなどの軽量 IDE を使用して dll を作成できます。ShareDevelop で、File->New->Solutionをクリックし、カテゴリC#/Windows Application/windows User Control Libraryを選択します。アプリケーションにAuthProxyという名前を付けます。AuthProxyModule.csという名前のクラスを 1 つ作成し、次のコードを内部に配置します。
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;
}
}
}
「USERNAME」と「PASSWORD」には、正しい値を設定する必要があります。また、適切な URI (例ではproxy:8080 ) を構成する必要があります。ソリューションをビルドすると、solution/bin/Debug フォルダーで AuthProxy.dll を取得できます。このステップは、このサイトに基づいています。
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
次に、 と タグの間に以下のコードを追加します。
<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)
Fiddler による監視。Fiddler では、プロセス列にdevenvまたはservicehub.identityhubまたはservicehub.settingshostが表示されます。リクエストを生成するプロセス。
エラーが発生した場合、列Resultには407が表示されます。動作中は200が表示されます。接続 HTTP/1.1 は407を返します。接続 HTTP/1.0 は200を返す必要があります。そうでない場合は、プロセスに関連付けられている構成ファイルを確認する必要があります。
Inspectorsタブで、リクエストのAuthビューとレスポンスのHeadersビューをクリックします。何が起こっているのかを理解するための簡単な方法です。
注: Visual Studio をアップグレードすると、devenv.exe.configファイルが<system.net>
変更され、インストーラーによって次のように自動的に変更されることに注意してください。
<system.net>
<settings>
<ipv6 enabled="true"/>
</settings>
</system.net>
プロセスを再構成する必要があります。
この解決策は複雑に思えますが、私にとってはうまくいき、何が起こっているのかを理解して監視することができます。