C# MVC身份验证在IIS中不起作用(在IIS Express中起作用)

C# MVC身份验证在IIS中不起作用(在IIS Express中起作用),c#,asp.net,asp.net-core,iis,windows-server-2016,C#,Asp.net,Asp.net Core,Iis,Windows Server 2016,我已经创建了一个带有个人身份验证的MVC项目,并且正在使用默认模板。当我从visual Studio(IIS express)中启动应用程序时,我可以查看所有公共页面、注册帐户和登录。一切都很好 但是,当我发布项目并将其托管在完整的IIS服务器(Windows server 2016)上时,我可以查看所有公共页面,但注册或尝试登录会产生以下一般错误: 我在项目中使用LocalDb,我注意到部署的应用程序上的windows标识为“NT AUTHORITY\SYSTEM”,而IIS Express

我已经创建了一个带有个人身份验证的MVC项目,并且正在使用默认模板。当我从visual Studio(IIS express)中启动应用程序时,我可以查看所有公共页面、注册帐户和登录。一切都很好

但是,当我发布项目并将其托管在完整的IIS服务器(Windows server 2016)上时,我可以查看所有公共页面,但注册或尝试登录会产生以下一般错误:

我在项目中使用LocalDb,我注意到部署的应用程序上的windows标识为“NT AUTHORITY\SYSTEM”,而IIS Express应用程序的标识为USER-DESKTOP\USER。此错误是由权限问题引起的吗?如果是,如何解决此问题


另外,对已部署的项目使用localDB是否不好?将只有两个用户使用该应用程序,并且他们都是受信任的。

对于已部署的项目使用localDB完全不是一个好主意,
它仅用于开发人员测试

在vs中开始调试时,将启动localDB

如果使用SQL Express会更好

尝试按照以下步骤将站点应用程序池标识设置为本地系统:

1) 打开iis管理器

2) 转到应用程序池并选择应用程序池名称

3) 单击高级设置

4) 有一个“流程模型”选项,在该选项下有一个“标识”选项。默认情况下,这是应用程序池标识。把它改成本地系统,你就完成了

将“加载用户配置文件”设置为True


对于我来说,ASPNETCORE_环境变量值中似乎有错误,您是否在IIS中设置了它?ASPNETCORE_环境在项目的launhSettings.jason文件中设置为Development。。。。但我没有在IIS中设置任何内容。我只是做了一些简单的研究,但仍然不能100%确定如何在IIS中设置它们。您能详细说明一下吗?如果托管应用的根目录中有web.config文件,您可以添加到aspNetCore节env变量中,如果没有此文件,您可以通过IIS管理器进行配置