问题描述
我已经创建了具有单独身份验证的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,效果会更好
https://go.microsoft.com/fwlink/?linkid=866658
请按照以下步骤尝试将您的站点应用程序池标识设置为本地系统:
1)打开iis管理器
2)转到应用程序池,然后选择您的应用程序池名称。
3)点击高级设置。
4)有一个“过程模型”选项,在其下有一个“身份”选项。默认情况下,这是应用程序池标识。将其更改为本地系统,就可以完成。
将“加载用户个人资料”设置为True。