今天遇到一个很奇怪的事情,用request.url.port来获取一个请求的端口,返回是80 ,很纳闷啊我的请求上面是http://www.XX.com:8088 啊,怎么会是80啊,太不可思议了! 看msdn: 获取有关当前请求的 URL 的信息 感觉对啊,没啥问题啊,但是返回确实不对啊,只好上网去搜,后面才知道是端口映射的问题 request.url 获取到的是基于IIS的定位URL,而IIS只知道自己的端口是80不知道外面对他的请求是怎么处理的,就是它只去处理关于80的问题,所以返回的80 而我们访问加的8088 就是加的端口映射,那这时候怎么办呢? 解决方案:后面才发现用 request.Heads["host"] 即为你客户端IE发送的request标头,这个才是从外网访问的URL,问题解决