Uri.EscapeDataString(Request.Url.AbsoluteUri)在不同的环境中是错误的,我还应该使用什么?

时间:2008-12-11 21:06:18

标签: asp.net httpwebrequest request httprequest

我正在生成一个返回网址链接,因此当用户点击此页面上的关闭按钮时,他们会返回此ReturnUrl。

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

这在开发环境中工作正常,但在我所拥有的环境中

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)

由于我没有直接访问uat环境,所以我不知道在发布周期之后会有什么决定性的,所以如果我能避免第一次出错就会有所帮助。

查看Request.Url调试我的可能性

DnsSafeHost或 宿主

可与

一起使用

AbsolutePath或 LocalPath或 PathAndQuery

或者我有

OriginalString

或者我可能会使用引用来代替?

1 个答案:

答案 0 :(得分:1)

PathAndQuery为您提供了查询字符串变量的相对路径,因此您不必担心域上的额外“01”。只需处理相对路径。

出于好奇,您的环境负载是否均衡?您的应用似乎对其响应的域感到困惑。如果请求直接遇到平衡服务器而不是负载平衡点或负载均衡器将请求转发到计算机专用域,则可能(可能)发生这种情况?

我会向您的网络管理员请求信息。如果您详细描述了您正在做的事情,尤其是您的应用有时认为它在app-uat-01上做出响应,他们可能会立即看到问题。