IIS express worker process 不能使用pac 代理访问外部网站
在配置了自动代理服务器的公司内网中使用IIS运行asp.net web 应用时,有时会出现奇怪的故障。虽然系统代理设置正常,使用edge,IE, Chrome等浏览器也能正常访问外部网站,但是使用IIS运行asp.net 应用时,就是不能正常建立连接。遇到该问题时,一般切换到其他没有配置自动代理的服务器时,IIS中的asp.net 应用能正常访问外部网站。如果不允许切换到其他网络,则需要修改web.config 配置文件。在web.config 配置文件中添加如下所示的配置。
<system.net>
<defaultProxy>
<proxy autoDetect="True" bypassonlocal="True" usesystemdefault="True" proxyaddress="http://proxy.cn.cwyyprog.com:8080"/>
</defaultProxy>
</system.net>
详细的参考文档在<proxy> Element (Network Settings) | Microsoft Docs 如果不知道proxyaddress 的准确地址可以访问http://wpad/wpad.dat 来访问获取网络的pac自动代理配置文件。
按照微软官方文档所述,在web.config 里没有任何代理相关的配置的时候,windows 系统应该使用系统设置的代理服务器。但是,IIS 有时候就是不使用系统的代理服务器,而直接抛出连接失败的错误。
ASP.NET 的controller 类的名字必须以Controller 结尾,不然不会出现在路由表中
这种bug和workaround 被广泛知晓和接受后,就又成为了一个feature! 妈的!