Uri.EscapeDataString(Request.Url.AbsoluteUri)は、異なる環境では間違っている、私は他に何を使うべきでしょうか?

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

質問

私は、ユーザーがこのページのクローズボタンを押したときに、彼らはこのにreturnurlに戻るリターンURLリンクを生成しています。

すなわち ます。http://ローカルホスト:42605 / Search.aspxにreturnurl =のhttp%3A%2F%2Flocalhost%3A42605%2FStuff%2FViewStuff.aspx%3FProjectId%3D2246

これは、DEV環境では正常に動作しますが、UAT環境では、私が持っている

<のhref = "http://app-uat.com/Search.aspx?ReturnUrl=http%3A%2F%2Fapp-uat-01.com%2FStuff%2FViewStuff.aspx%3FProjectId%3D2246" のrel = "nofollowをnoreferrer"> http://app-uat.com/Search.aspx?ReturnUrl=http%3A%2F%2Fapp-uat-01.com%2FStuff%2FViewStuff.aspx%3FProjectId%3D2246する

にreturnurlパラメータに余分な01に注目してください。

だから私は現在使用しているにreturnurlビットを生成する。

Uri.EscapeDataString(Request.Url.AbsoluteUri)

私は私が参考になる最初の時間を、それは間違って避けることができますので、もしdefinetlyリリースサイクル後まで動作するものを知らないUAT環境への直接アクセスを持っていけないと。

私が持っている可能性をデバッグするにRequest.Urlを見ると

DnsSafeHostか ホスト

と一緒に使用することができました

AbsolutePathか ローカルパスまたは PathAndQuery

または私が持っている

OriginalString

または私は多分、私が代わりにリファラを使うだろうか?

役に立ちましたか?

解決

あなたがドメインに余分な「01」を心配する必要はありませんので、

PathAndQueryはあなたのクエリ文字列VARSと相対パスを提供します。ただ、相対パスを扱うます。

好奇心から、あなたのUAT環境負荷がバランスしていますか?アプリが、それは上の応答いたドメインへと混同されることが表示されます。要求がロードバランスポイントに対する直接のバランスサーバーに当たったり、ロードバランサは、マシン固有のドメインへの要求を転送する場合、これは(おそらく)が起こるだろうか?

私は、ネットワーク管理者からの情報を要求します。あなたのアプリは、時にはそれがアプリ-UAT-01に対応しています信じて、特にことを、非常に詳細にあなたがやっていることを説明した場合、彼らはすぐに問題が表示される場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top