我有一个在本地运行的ASP.NET Web API,我正在使用Fiddler进行调试。 API在应用程序池帐户下运行,并对外部API进行多次调用。
当我针对我的本地API运行验收测试并在Fiddler中捕获请求时,我看不到那些外部请求,只是直接在测试的app域中进行的HTTP调用。做完一些阅读后,我发现我需要configure IIS to use a default proxy通过Fiddler路由所有流量。
所以,我尝试将此添加到我的web.config system.net
:
<defaultProxy>
<proxy autoDetect="false" bypassonlocal="false" proxyaddress="http://127.0.0.1:8888" usesystemdefault="false" />
</defaultProxy>
这很有效。 Fiddler现在向我展示了API所做的所有内部HTTP请求。但是,我不想通过提交此web.config更改来影响其他开发人员,所以我尝试将此部分移动到我的machine.config。
完成此操作后,即使我可以看到配置被拉到我的IIS应用程序(下面的屏幕截图),我也没有在Fiddler中看到相同的请求,这表明我没有使用代理。即使在iisreset
。
任何人都可以对此有所了解吗?
更新1
@ lex-li指出我的屏幕截图中的usesystemdefault
是true
,而我在machine.config中将其设置为false
。由于某种原因,似乎这个特定值没有从machine.config引入应用程序配置。但是,如果我在web.config中仅覆盖该值,如下所示,则应用程序仍然不使用代理。
<system.net>
<defaultProxy>
<proxy usesystemdefault="false" />
</defaultProxy>
</system.net>