【发布时间】:2016-01-14 06:49:13
【问题描述】:
在将我的 ASP.net 软件部署到生产站点(Windows server 2012 R2)之前,我首先在测试服务器上测试该软件。如果成功,我将完全相同的软件部署(复制)到生产站点。
在生产站点上,单击链接时出现以下错误:
警告,检测到 404 错误:System.Web.HttpException (0x80004005):文件“/Account/Login.aspx”不存在。 在 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal...
请注意,路径“/Account/Login.aspx”是已部署软件先前版本的一部分。当前版本中不再存在该路径。
我试图通过删除以下内容来制作“干净的ip”:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root
但这没有帮助。
如何找到 404 错误的根本原因?
如何防止旧版本的已部署软件在最新部署的版本中出现问题?
【问题讨论】:
-
请格式化您的问题。
-
在生产服务器的 web.config 中搜索“Login.aspx”。如果您使用表单身份验证,它可能在您的身份验证部分中
-
请注意,测试服务器和生产服务器上的所有代码都是相同的。这包括配置文件(当然不同的连接字符串除外)。在当前版本中,我在以前版本的 SW 中使用表单(成员资格)后切换到 ASP.net 身份
-
ASP.NET Identity 框架的默认“LoginPath”是“/Account/Login”。查看 Web 应用程序的 App_Start 目录中的 Startup.Auth.cs 文件。如果它仍然是默认路径,请在此处更新并重新部署到您的 prod 环境。
-
'Startup.Auth.cs' 已经包含以下行:' LoginPath = new PathString("/IdentityAccount/Login.aspx"),'。