我有一个Web应用程序和一个Web API应用程序。两个.net 4.5。我在web api应用程序上设置了IpSecurity。两者都托管在IIS中的同一台机器上。机器的IP是10.40.x.x.因此,下面的任何一项都应该有效
<security>
<ipSecurity allowUnlisted="false">
<clear />
<add ipAddress="10.0.0.0" subnetMask="255.0.0.0" allowed="true" />
<add ipAddress="127.0.0.1" subnetMask="255.255.255.255" allowed="true"/>
</ipSecurity>
设置了applicationHost.config:
<section name="ipSecurity" overrideModeDefault="Allow" />
在浏览器中,我可以从localhost访问web api应用程序的主页。这很好用。当我从Web应用程序向Web api应用程序发出HttpClient GET请求时,我收到403.6禁止响应,表明IIS因IP安全性而阻止了请求。
我可以使用POSTMan或任何其他方法从localhost直接对Web API应用程序进行Web API调用。唯一一次提供403.6禁止的是在我的网络应用程序中从HttpClient向同一URL发出请求时。
如果我改变
<ipSecurity allowUnlisted="true">
来自网络应用的请求工作。所以它肯定是IIS IP限制的东西,而不是其他东西。
为什么来自HttpClient中的Web应用程序的请求会被阻止,但其他上下文中的其他请求不会被阻止?