我的本地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 错误页面中显示的是动态发送到 Response.Redirect(...)方法的内容。
在错误页面中,请求的网址将值显示为
http://localhost/CP/web/console/localhost/CPLogin?err=5
而代码中形成的 我实际请求的网址 是:
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/ [^]
非常感谢。!
答案 0 :(得分:0)
在IIS中,转到相关文件夹,右键单击"浏览"。看看URL是什么。在大多数情况下,这是由于URL应该附加端口号。例如,它将是:
http://localhost:<port number>/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008
而不是
http://localhost/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008