我遇到了Visual Studio 2013和我们公司代理的问题(登录不起作用,更新不起作用,Visual Studio库不起作用,nuget和git失败)。所有这些都在做http或https请求。 (例如http://visualstudiogallery.msdn.microsoft.com/)。在VS2013中,我只是获得了旋转进度条或没有网络连接的消息。
浏览器(chrome,IE,firefox)没问题,因为他们都理解代理(407拒绝,然后用凭据回复)。
所以我想弄清楚为什么VS2013不起作用。但是当我告诉fiddler2观看DEVENV.EXE进程(或所有进程)时,我看不到任何流量。
顺便说一下,我已经尝试对web.config(devenv.exe.config)文件进行一些更改,以确保它转到代理(我在堆栈构建器中看到了这个),但它对我不起作用。请参阅以下部分的补充内容:
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy proxyaddress="http://gw6.OURSITE.com:3128" />
</defaultProxy>
<settings>
<ipv6 enabled="true"/>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe.config
文件。
我投入的是:
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
</defaultProxy>
</system.net>
我发现VS2013没有发送用户代理字符串。它确实知道#407 naks并且它使用凭据进行回复,但网关仍然需要用户代理:
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Connection: close
Content-Length: 1341
<html>
<head>
<title>Access Policy Denied: No User-Agent Specified</title>
<meta name="description" content="Web Access Policy">
</head>
<body>
答案 0 :(得分:39)
如果你想查看Fiddler的流量,你可能想要改变machine.config
文件的路径,这样所有的.NET应用程序都会通过Fiddler发送流量。这有助于确保从服务中运行的进程中捕获数据等。
在machine.config
文件夹中打开C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config
。
请注意,如果您正在调试64位服务(如ASP.NET),则需要查看Framework64
文件夹而不是Framework文件夹。同样,如果您使用的是4.0之前的.NET版本,则需要调整路径的版本部分。
将以下XML块作为对等方添加到现有的system.net元素中,替换任何现有的defaultProxy元素(如果存在):
<!-- The following section is to force use of Fiddler for all applications, including those running in service accounts -->
<system.net>
<defaultProxy
enabled = "true"
useDefaultCredentials = "true">
<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
</defaultProxy>
</system.net>
参考http://fiddler2.com/blog/blog/2013/01/08/capturing-traffic-from-.net-services-with-fiddler
注意:如果您愿意,可以使用Fiddler为出站请求注入User-Agent
标头。此外,在最新版本的Fiddler中,您可以使用File&gt;导入&gt; Packet Capture用于收集使用Microsoft NetMon或Microsoft Message Analyzer捕获的.cap文件的HTTP流量。
答案 1 :(得分:14)
我的老板建议另一个简单的方法来解决这个问题。你可以在uri中添加“fiddler”。例如:http://localhost:52101/ - &gt; http://localhost.fiddler:52101/
答案 2 :(得分:7)
或者你可以使用像;
这样的轻量级方法if(Debugger.IsAttached) { request.Proxy = new WebProxy(&#34;
http://localhost:8888/
&#34;,true); }