Uri.EscapeDataString (Request.Url.AbsoluteUri) ne va pas dans un environnement différent, Que dois-je utiliser?

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

Question

Je suis générer un lien url de retour alors quand l'utilisateur touche le bouton de fermeture de cette page ils reviennent à ce ReturnUrl.

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

Cela fonctionne bien dans un environnement de dev, mais dans UAT environnement, j'ai

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

Remarquez le 01 supplémentaire sur le paramètre ReturnUrl.

Donc, pour générer le bit ReturnUrl J'utilise actuellement

Uri.EscapeDataString (Request.Url.AbsoluteUri)

Comme je n'ai pas accès direct à l'environnement UAT Je ne sais pas ce qui va travailler definetly qu'après un cycle de sortie, donc si je peux éviter de se tromper la première fois qui serait utile.

En regardant Request.Url en déboguer les possibilités je

ou DnsSafeHost Hôte

qui pourrait être utilisé avec

ou AbsolutePath LocalPath ou PathAndQuery

ou j'ai

OriginalString

Ou je peut-être que je pourrais utiliser le referer à la place?

Était-ce utile?

La solution

PathAndQuery vous donne un chemin relatif avec querystring vars de sorte que vous n'avez pas à vous soucier de l'extra « 01 » sur le domaine. Il suffit de traiter les chemins relatifs.

Par curiosité, est votre environnement UAT charge équilibrée? Il semble que votre application est confus quant à quel domaine il est de répondre sur. Cela pourrait (éventuellement) se produire si une demande touche un serveur directement équilibré par rapport au point d'équilibre de la charge ou l'équilibrage de charge demande vers l'avant au domaine spécifique à la machine?

Je demande d'information de votre administrateur réseau. Si vous décrivez ce que vous faites avec beaucoup de détails, surtout que votre application croit parfois il est de répondre sur app-UAT-01, ils pourraient voir la question tout de suite.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top