IIS找不到HTTP 404,但资源存在。请求的URL也会自动更改。

时间:2013-09-16 12:24:42

标签: c# http iis-7.5 http-status-code-404 response.redirect

我的本​​地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/ [^]

非常感谢。!

1 个答案:

答案 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