Uri.EscapeDataString(Request.Url.absoluteURI) неверен в другой среде, что еще я должен использовать?

StackOverflow https://stackoverflow.com/questions/360918

Вопрос

Я генерирую ссылку return url, поэтому, когда пользователь нажимает кнопку закрытия на этой странице, он возвращается к этому returnUrl.

т. е. http://localhost:42605/Search.aspx?ReturnUrl=http%3A%2F%2Flocalhost%3A42605%2FStuff%2FViewStuff.aspx%3FProjectId%3D2246

Это прекрасно работает в среде разработки, но в среде uat у меня есть

http://app-uat.com/Search.aspx?ReturnUrl=http%3A%2F%2Fapp-uat-01.com%2FStuff%2FViewStuff.aspx%3FProjectId%3D2246

Обратите внимание на дополнительный 01 в параметре returnUrl.

Итак, чтобы сгенерировать бит returnUrl, который я сейчас использую

Uri.EscapeDataString(Запрос.Url.absoluteURI)

Поскольку у меня нет прямого доступа к среде uat, я не знаю, что определенно будет работать до окончания цикла выпуска, поэтому, если я смогу избежать ошибок в первый раз, это было бы полезно.

Смотрю на запрос.URL в отладке возможностей, которые у меня есть

DnsSafeHost или Хост

который мог бы быть использован с

Абсолютный путь или Локальный путь или PathAndQuery

или у меня есть

Исходная строка

Или, может быть, я мог бы вместо этого использовать реферер?

Это было полезно?

Решение

PathAndQuery предоставляет вам относительный путь с переменными строк запроса, поэтому вам не нужно беспокоиться о дополнительном '01' в домене.Просто разберитесь с относительными путями.

Из любопытства, сбалансирована ли нагрузка на вашу среду uat?Похоже, что ваше приложение запуталось в том, на каком домене оно отвечает.Это может (возможно) произойти, если запрос попадает на сбалансированный сервер напрямую против точки балансировки нагрузки или балансировщик нагрузки перенаправляет запросы в домен, специфичный для конкретной машины?

Я бы запросил информацию у вашего сетевого администратора.Если вы опишете, что вы делаете, очень подробно, особенно то, что ваше приложение иногда считает, что оно отвечает на app-uat-01, они могут сразу увидеть проблему.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top