Запрос.Url.Port, указывающий неправильный порт

#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. Задайте еще один вопрос о том, как исправить ваше приложение — зачем ему нужно знать номер своего порта?