关于获取端口

    今天遇到一个很奇怪的事情,用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,至此问题解决

相关文章:

  • 2021-09-27
  • 2021-05-23
  • 2022-02-26
  • 2021-05-20
  • 2022-12-23
  • 2021-07-17
  • 2021-10-23
  • 2022-12-23
猜你喜欢
  • 2022-03-08
  • 2022-12-23
  • 2021-11-20
  • 2022-12-23
  • 2021-07-24
  • 2021-08-30
  • 2022-12-23
相关资源
相似解决方案