asp.net-mvc - 登录后出现404.0错误。 Asp.Net MVC 和 IIS 7.5

标签 asp.net-mvc iis iis-7 asp.net-mvc-4 iis-7.5

我有一个在 IIS 7.5 上运行的 ASP.NET MVC 应用程序。 已启用表单验证

我可以访问登录页面。 (这意味着路由没问题)但是当我登录时,应用程序应该将发布数据发送到 http://localhost/tgpwebged/Account/Login 来验证用户身份。

问题是我的应用程序正在 http://localhost/Account/Login 中查找/Account/Login(这不是路径)。

我正在尝试改变这种行为,但没有成功。

这是我的route.config

routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional }

web.config

<authentication mode="Forms">
  <forms loginUrl="Account/Login"/>
</authentication>

查看

<form method="post" action="/Account/Login">

IIS 还设置为接受匿名登录,以便用户能够访问登录页面。

这是我收到的错误消息:

TTP 错误 404.0 - 未找到 您要查找的资源已被删除、更名或暂时不可用。

一些详细信息:

请求的 URL http://localhost:8081/Account/Login (正确路径:http://localhost:8081/tgpwebged/Account/Login ) 物理路径 S:\Projects\Account\Login (应为 S:\Projects\tgpwebged\Account\Login) 登录方式 匿名 匿名用户登录

最佳答案

POST 将指向错误的 URL,因为这是您在 View 中提到的内容。参见

<form method="post" action="/Account/Login">

这将始终发布到 <host name>/Account/Login

尝试给出相对路径(或使用 ResolveUrl 方法替换绝对路径) - 例如,在 aspx View 中,您可以使用

<form method="post" action='<%= this.ResolveUrl("~/Account/Login") %>' >

在razor(cshtml) View 中,您可以尝试(未经测试)

<form method="post" action='@Url.Content("~/Account/Login")' >

关于asp.net-mvc - 登录后出现404.0错误。 Asp.Net MVC 和 IIS 7.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13621401/

相关文章:

c# - ASP.NET MVC 如何获得允许的用户?在 Windows 身份验证中

javascript - 将 int 数组从 js 发送到 Controller

c# - 为什么 IIS 返回空响应?

asp.net - 在 IIS 8.5 中部署 ASP.NET RC1 WebApp

asp.net - 在IIS服务器上部署不依赖nodejs的asp.net React模板

iis-7 - Web 平台安装程序 3.0 中的 "IIS 7 Recommended Configuration"是什么?

c# - 如何在 asp.net mvc 应用程序中附加 APPS 所需的共享点参数?

jquery - ASP.NET MVC + Backbone.js,这有什么意义吗? ASP.NET MVC 真的需要吗?

iis-7 - 我可以以编程方式定义我的 IIS7 站点绑定(bind)(例如 foo.domain.com)吗?

php - 500内部服务器错误。 PHP提交页面