Uri.EscapeDataString(Request.Url.absoluteURI) неверен в другой среде, что еще я должен использовать?
-
21-08-2019 - |
Вопрос
Я генерирую ссылку return url, поэтому, когда пользователь нажимает кнопку закрытия на этой странице, он возвращается к этому returnUrl.
Это прекрасно работает в среде разработки, но в среде uat у меня есть
Обратите внимание на дополнительный 01 в параметре returnUrl.
Итак, чтобы сгенерировать бит returnUrl, который я сейчас использую
Uri.EscapeDataString(Запрос.Url.absoluteURI)
Поскольку у меня нет прямого доступа к среде uat, я не знаю, что определенно будет работать до окончания цикла выпуска, поэтому, если я смогу избежать ошибок в первый раз, это было бы полезно.
Смотрю на запрос.URL в отладке возможностей, которые у меня есть
DnsSafeHost или Хост
который мог бы быть использован с
Абсолютный путь или Локальный путь или PathAndQuery
или у меня есть
Исходная строка
Или, может быть, я мог бы вместо этого использовать реферер?
Решение
PathAndQuery предоставляет вам относительный путь с переменными строк запроса, поэтому вам не нужно беспокоиться о дополнительном '01' в домене.Просто разберитесь с относительными путями.
Из любопытства, сбалансирована ли нагрузка на вашу среду uat?Похоже, что ваше приложение запуталось в том, на каком домене оно отвечает.Это может (возможно) произойти, если запрос попадает на сбалансированный сервер напрямую против точки балансировки нагрузки или балансировщик нагрузки перенаправляет запросы в домен, специфичный для конкретной машины?
Я бы запросил информацию у вашего сетевого администратора.Если вы опишете, что вы делаете, очень подробно, особенно то, что ваше приложение иногда считает, что оно отвечает на app-uat-01, они могут сразу увидеть проблему.