用request.url.port抓取不到port?

 关于获取端口

    今天遇到一个很奇怪的事情,用request.url.port来获取一个请求的端口,返回是80 ,很纳闷啊

我的请求上面是http://www.XX.com:2288 啊,怎么会是80啊,太不可思议了!

   看msdn: 获取有关当前请求的 URL 的信息

   感觉对啊,没啥问题啊,但是返回确实不对啊,只好上网去搜

   可能是应为 搜商比较低 找来找去找不到,最后看到一个老外的 http://translate.googleusercontent.com/translate_c?hl=zh-CN&langpair=en%7Czh-CN&u=http://stackoverflow.com/questions/1161527/router-port-forwarding-and-httpcontext-current-request-url&rurl=translate.google.com&usg=ALkJrhj0zXCUi7v6XHLAOKogOaY5aZh_Fw 看到的 才知道是端口映射的问题

  request.url 获取到的是基于IIS的定位URL,而IIS只知道自己的端口是80不知道外面对他的请求是怎么处理的,就是它只去处理关于80的问题,所以返回的80

  而我们访问加的2288就是加的端口映射,那这时候怎么办呢?

   老外给提出了一个解决方案:这个问题应该回到http协议的底层来,http标头一个属性host解决了这个问题 :request.Heads["host"] 即为你客户端IE发送的request标头,这个才是从外网访问的URL,至此问题解决

转载于:https://www.cnblogs.com/sky_Great/archive/2010/08/02/1790497.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值