Response.Redirect去错误的目的地

问题描述:

我正在一个C#.NET网站上工作,用户可以点击一个链接,并重定向到另一个网站,我们也拥有一个单独的网站。代码非常容易理解,有一个开关,然后调用Response.Redirect(the_url_we_want_to_go_to)Response.Redirect去错误的目的地

我调试了很多次,我可以确认当调试器击中这个重定向行时,参数是正确的。它指向这个其他网站的QA版本。 qa.samplesite.com可以说。但是,浏览器不会去那里。相反,浏览器改为碰到测试环境。可以称它为test.samplesite.com。这就是问题。

据我所知,这两个独立的网站在应用程序服务器之间有一百万件事,但也许你们之前见过类似的东西。更具体地说,有没有办法在调试器中捕获出站流量,或者有办法查看应用服务器本身(在IIS中)的出站流量?我熟悉拦截httpmodules内部的入站流量。也许这不是一个*的问题...

感谢您的帮助!

+2

检查应用程序托管在服务器/工作站上的本地'主机'文件,并确保请求没有被重新路由... – xandercoded 2012-01-31 17:46:42

+0

您可以使用wireshark捕获数据包并检查它们。也许在IIS中的URL重写设置... – 2012-01-31 17:47:31

+0

nslookup(从命令行)将允许您检查域名是否解析为您期望您的qa站点正在使用的IP。 – 2012-01-31 17:51:28

使用非常漂亮的HTTP嗅探器“Fiddler”。它将允许您查看所有HTTP请求。你应该证明a)重定向目标是正确的(它可能会在请求管道中稍后被覆盖,Response.Redirect不是最后一个词),b)你没有第二个重定向。

+1

建议我使用小提琴手,可以看到该应用程序正确重定向。接收端有东西将它发送到测试环境。谢谢你的帮助 – james 2012-01-31 20:51:02

您可以尝试使用的Response.Redirect的过载为

的Response.Redirect( “url_here”,真正的);

这将停止当前页面上的响应(因为endResponse设置为true)并重定向到url。

如果你仍然有这个问题,那么这可能是一些名称解析错误。

检查,看看您的主机的文件中找到这里

C中的windows目录下:\ WINDOWS \ SYSTEM32 \ DRIVERS \等\主机

希望这将做到这一点。

我终于想出了一个类似的问题。这很愚蠢。我已经复制了一些.aspx页面,做了一些小改动。我尝试重定向客户端的页面,如果它的“CodeBehind”设置错误。所以它重定向到了正确的页面,但是从另一个页面加载了CodeBehind!