#c# #asp.net
#c# #asp.net
Вопрос:
Мне дают живой IP-адрес от моей службы поддержки, что-то вроде http://201.121.152.168:68/
. Теперь в обычных обстоятельствах вы бы подумали, что 68 — это порт. Однако, когда я выполняю запрос.Хост, который я получаю 201.121.152.168
, и когда я делаю запрос.Порт, который я получаю 80
. Так куда же делось число 68? Он не поступает ни на хост, ни на порт. Вот почему все мое приложение ломается. Кто-нибудь может подсказать, что происходит не так и как я могу это исправить?
Чего мне здесь не хватает?
Обновление: если я это сделаю request.Headers["Host"].ToString()
, я получу полный хост с портом, т.е. 201.121.152.168:68
Ответ №1:
Я бы предположил, что ваша служба поддержки исправила порт 68 на вашем брандмауэре, чтобы он указывал на 80 внутри. Поэтому с точки зрения вашего сервера запрос поступает на порт 80. Может быть, это так?
UrlReferrer предоставит вам правильный порт, насколько я знаю, потому что он отправляется из браузера (который видит URL с портом 68).
Комментарии:
1. отлично!!!!! Они сделали патч, поэтому я тоже сделаю патч и использую UrlReferrer. Порт на данный момент
2. Но, к сожалению, запрос. UrlReferrer имеет значение null, и поэтому я не могу получить порт браузера. Что мне делать в таком случае?
3. Задайте еще один вопрос о том, как исправить ваше приложение — зачем ему нужно знать номер своего порта?