未找到抛出 HTTP 404 的 IIS 但存在资源.请求的 URL 也会自动更改
本文关键字:URL 请求 资源 HTTP IIS 存在 | 更新日期: 2023-09-27 18:31:24
我的本地IIS在这里面临着一个非常奇怪的场景。我在本地 IIS 的默认网站中托管了多个网站。其中一个具有登录页面。从登录页面,我将用户重定向到位于另一个站点(该站点也托管在默认网站虚拟目录中的同一 IIS 中)中的另一个页面。
现在在我的登录页面的提交按钮点击事件中,在对用户进行身份验证后,我编写了一个"Response.Redirect(redirect_url)"。 redirect_url是动态形成的,并作为参数提供给重定向方法。
调试时,作为参数发送到重定向方法的最终redirect_url为:
http://localhost/CP/web/console/console.aspx?sk=3e3cc1a8-73c4-4945-b3f8-08af22ea4324.50008
但是在我尝试进入下一步后,我突然收到一个 HTTP 404 错误,指出资源不存在,并且我观察到错误页面中显示的请求 URL 与动态发送到 Response.Redirect(...) 方法的 URL 不同。
在错误页面中,请求的 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
我只是无法理解为什么请求的网址会自动更改。!另外,我观察到"本地主机"再次附加到请求的 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-changing-automatically/[^]
多谢。!
事实上,问题出在我在应用程序中托管网站的方式上。我刚刚从 IIS 中删除了与我的应用程序相关的所有站点,然后更仔细地再次托管所有这些站点。这解决了"错误的重定向 url"问题。
此外,我有一些表缺少必需的数据,因此我收到了错误代码。
因此,在我用所需数据填充所有表并在 IIS 中正确托管应用程序之后,我的问题得到了解决。
在IIS中,转到相关文件夹,右键单击并"浏览"。查看什么是网址。在大多数情况下,这是由于 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