Response.Redirect() 适用于 Visual Studio,但不适用于 IIS

问题描述 投票:0回答:3

我正在尝试将基本 Web 应用程序从 Windows 7 上的 Visual Studio 上传到 Windows Server 2007 上的 IIS 环境。

虽然从 IIS 启动它会显示登录页面,但尝试导航到主菜单会返回此错误:

应用程序“PARKING/PARKING ASSIGNMENTS WEB”中的服务器错误 互联网信息服务7.0
错误总结
HTTP 错误 404.0 - 未找到
您正在查找的资源已被删除、更名或暂时不可用。详细错误信息
模块 IIS Web 核心
通知MapRequestHandler
处理程序静态文件
错误代码 0x80070002
请求的网址

http://localhost:81/Parking Assignments Web/Home

物理路径
C:\ParkingAssignmentsWeb\Home

登录方式 匿名
匿名用户登录

最可能的原因:

  • Web 服务器上不存在指定的目录或文件。
  • 该 URL 包含拼写错误。
  • 自定义过滤器或模块(例如 URLScan)限制对文件的访问。

您可以尝试的事情:

  • 在 Web 服务器上创建内容。
  • 查看浏览器 URL。

创建跟踪规则来跟踪此 HTTP 状态代码的失败请求,并查看哪个模块正在调用 SetStatus。有关为失败请求创建跟踪规则的更多信息,请单击此处。 链接和更多信息此错误意味着服务器上不存在该文件或目录。创建文件或目录并重试该请求。 查看更多信息»

这是我用于导航的代码:

Response.Redirect("Home.aspx");

为什么此导航可以在 Visual Studio 上运行,但不能在 IIS 上运行?

我尝试了你们向我展示的重定向命令的各种变体,但它们都给出了 404 错误,这让我相信问题不在于命令,而在于其他东西。知道什么吗?

c# asp.net visual-studio iis
3个回答
0
投票

它将

Home.aspx
视为相对路径。

像这样使用它:

Response.Redirect("/Home.aspx");

0
投票

当您部署到 IIS 时,将使用不同的 Web 服务器。 Visual Studio 使用选项有限的 Web 服务器,在大多数情况下,但并非所有应用程序在部署到 Windows 服务器上的 IIS 时都应该在不进行任何更改的情况下运行。

需要检查的事项

  • 验证工作站上的文件夹结构与部署到服务器的文件夹结构相同。
  • 检查 Web 服务器上 IIS 访问的文件夹的权限
  • Response.Redirect("Home.aspx");假设该文件与调用传输的页面位于同一目录中
  • 添加更完整的路径(“/home.aspx”)或(“/folder/home.aspx”),其中文件夹是包含 .aspx 文件的实际文件夹名称

0
投票

请尝试:

Response.Redirect("~/Parking Assignments Web/Home.aspx");

Response.Redirect("~/Parking Assignments Web/Home");
© www.soinside.com 2019 - 2024. All rights reserved.