我的本地 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 错误,说资源不存在,我观察到错误页面中显示的请求 URL与动态发送到响应的不同.Redirect(...)方法。
在错误页面中,请求的 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,这不是应该发生的。
请访问此链接[^] 以更清楚地理解此问题。我添加了错误页面的屏幕截图。
http://amoghnatu.wordpress.com/2013/09/16/question-please-help-iis-throwing-http-404-not-found-but-requested-resource-actually-exists-requested-url-also-自动更改/ [^]
非常感谢。!