【发布时间】:2013-09-20 14:26:43
【问题描述】:
我的本地 IIS 在这里遇到了一个非常奇怪的情况。我在本地 IIS 的默认网站中托管了多个站点。其中之一有登录页面。从登录页面,我将用户重定向到位于另一个站点的另一个页面(该站点也托管在默认网站虚拟目录内的同一 IIS 中)。
现在在我的登录页面的提交按钮点击事件中,在验证用户身份后,我写了一个“Response.Redirect(redirect_url)”。 redirect_url 是动态形成的,并作为参数提供给 Redirect 方法。
调试时,作为参数发送到 Redirect 方法的最终 redirect_url 是:
http://localhost/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008
但是在我尝试进入下一步之后,我突然收到一个 HTTP 404 错误,说资源不存在,我观察到 Requested URL 错误页面中显示的内容与动态发送到 Response.Redirect(...) 方法的内容不同。
在错误页面中,requested url显示值为
http://localhost/CP/web/console/localhost/CPLogin?err=5
而代码中形成的我实际请求的url是:
http://localhost/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008
我只是无法理解为什么请求的网址会自动更改。!另外,我观察到“localhost”再次被附加到请求的 URL,这不是应该发生的。
Please visit THIS link[^] 更清楚地理解这个问题。我添加了错误页面的屏幕截图。
http://amoghnatu.wordpress.com/2013/09/16/question-please-help-iis-throwing-http-404-not-found-but-requested-resource-actually-exists-requested-url-also-changing-automatically/[^]
非常感谢!
【问题讨论】:
标签: c# http iis-7.5 http-status-code-404 response.redirect